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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css vertical-align
- 下一篇: 2016-7-4收藏夹接口