日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3、数据类型一:strings

發布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3、数据类型一:strings 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?題外:

學習過程參考三份資料:《Redis入門指南》、《Redis實戰》、http://redis.io

后面的學習筆記中會引入它們的內容或代碼,在這里統一說明,后面筆記中便不再作特殊引用標記了。


??

Redis支持5大數據結構:strings,?hashes,?lists,?sets,sorted sets

Redis官網的第一句話就是:Redis is an open source (BSD licensed), in-memory?data structure store, used as database, cache and message broker.

?

Strings類型是最基本的數據類型,它能夠存儲任何形式的數據。允許單個字符類型最大容量為512MB。字符串類型是其他4中數據類型的基礎,其他數據類型與字符串類型的差別從某種程度上講只是組織字符串的形式不同。?例如,散列表以散列的形式組織字符串,集合類型以集合的形式組織字符串。

?

這一節總結strings

1、常用命令:

SET key value [EX seconds] [PX milliseconds] [NX|XX] SETEX key seconds value PSETEX key milliseconds value SETNX key value GET key GETSET key valueMSET key value [key value ...] MSETNX key value [key value ...] MGET key [key ...]INCR key INCRBY key increment INCRBYFLOAT key increment DECR key DECRBY key decrementAPPEND key value STRLEN key GETRANGE key start endSETBIT key offset value GETBIT key offsetBITCOUNT key [start end] BITOP operation destkey key [key ...] BITPOS key bit [start] [end]

?

2、命令解析

①、SET key value [EX seconds] [PX milliseconds] [NX|XX]

功能:設置一個key,可選項:

   EX:設置存活時間,單位秒,

   PX:設置存活時間,單位毫秒,

   NX:只有當key不存在的時候才執行,

   XX:只有當key存在的時候才執行(如果沒有指定NX或XX那么,無論key是否存在都會執行。不存在,則新增key;存在,則覆蓋原來的key)。

時間復雜度:O(1)

思考:上面的寫法復制于官網,但是本人覺的這個寫法不合適,應該寫成SET key value [EX seconds | PX milliseconds] [NX|XX],因為EX與PX只能選其一,如果同時設置不會報錯,但是只有后面的選項生效。

example

?

?②、SETEX key seconds value / PSETEX key milliseconds value

功能:設置key,同時指定存活時間,兩者不同在于前一個時間單位是“秒”,后一個為“毫秒”。等同于下面兩條命令:

  SET mykey valueEXPIRE mykey seconds / PEXPIRE mykey milliseconds

時間復雜度:O(1)

example

?

③、SETNX key value

功能:如果key不存在,則設置key;如果存在,則不作任何處理。

時間復雜度:O(1)

?

④、GET key

功能:獲取key的值

時間復雜度:O(1)

?

⑤、GETSET key value

功能:將key的值設置為value,同時返回原來的key值。

時間復雜度:O(1)

example

?

⑥、MSET/MGET

功能:同上的SET和GET功能,最前面的“M”表示“多個”。

時間復雜度:O(N),其中N表示列表中key的個數

?

⑦、MSETNX key value [key value ...]

功能:當列表中所有key都不存在的時候,執行該操作。注意:如果列表中有某個key已經存在,則操作不會成功。

時間復雜度:O(N),N表示列表中key的個數

example

?

?

⑧、INCR key /?INCRBY key increment / INCRBYFLOAT key increment

功能:INCR key是將key的值作加1操作。如果不是加1,則使用INCRBY key increment。如果key是一個浮點數,或者是要加的數是一個浮點數,則需要使用INCRBYFLOAT key increment。

時間復雜度:O(1)

example

?

⑨、DECR key / DECRBY key decrement

功能:將key的值作減1操作,或者是減去其它值

時間復雜度:O(1)

example

?

⑩、APPEND key value

功能:在key后面附加一個value值。相當于字符串的拼接操作。

時間復雜度:O(1)

example

思考:example中關于num的操作挺有意思的,可以將純數字的strings作append操作,如果結果還能是一個純數字,則可以執行incr等操作。

?

?、STRLEN key

功能:測量key的長度,單位為“字節”。實際上是key的值占用了多少個字節。

時間復雜度:O(1)

example

?

?、GETRANGE key start end

功能:返回子序列。從左到右是0,1,2...,從右到左-1,-2,-3...。也就是說,如果數字是正數,則表示“左起第xxx個”,0表示左起第一個;數值是負數,則表示“右起第xxx個”,-1表示右起第一個。注意:記住一點,返回結果是key對應value的子串,這就導致了要求“start指示的位置必須在end指示位置的左邊”,否則返回結果為空串。

時間復雜度:O(N),N表示返回字符串的長度。

example

?

轉載于:https://www.cnblogs.com/lj95801/p/5636414.html

總結

以上是生活随笔為你收集整理的3、数据类型一:strings的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。