redis(四)
redis的五種數據類型之String
1、string類型
一個鍵最多可以存儲512MB
1》SET:設置key對應的value
語法:SET key value[EX seconds]等等
SET testStr1 ‘this is a test1‘
SET testStr2 ‘this is a test2‘
註意:如果key已經存在數據庫中,那麽同名會產生覆蓋
有關於EX,PX,NX,XX內容可以參考Github
2》GET:根據key來找到對應的value
語法:GET key
GET testStr1
GET testStr2
當然我們在第二節的時候說過,如果沒有對應的值get XXX這樣我們會得到nil的返回值
以上的截圖就是我們set兩個,get兩個,重復設置,覆蓋一個的結果啦
註意:如果key不是字符串就會報錯
3》SETRANGE:設置字符串的一部分
語法:SETRANGE key offset value
SETRANGE testStr1 3 your
以下自己測試
SETRANGE testStr1 4 not
SETRANGE testStr1 2 5 long
SETRANGE testStr1 6 test
註意:如果設置的key原來的字符串長度比偏移量小,就會以零字節(\x00)填充
4》GETRANGE:返回字符串的一部分
語法:GETRANGE key index
GETRANGE testStr1 0 4
GETRANGE testStr1 0 -3
GETRANGE testStr1 -4-2
GETRANGE testStr1 0 1000 獲取所有的字符串
我們的下表是從零開始截取到4的位置
同樣的我們的下表也支持負數,和我們python的range函數差不多啦
5》GETSET:是指新key的值,返回舊的key
SET testStr3 ‘king‘
GET testStr3
GETSET testStr3 ‘queen‘
實現字符串自增長的INCR,作用是我們常見到的計數器
註意:當可以不存在的時候,GETSET返回時nil
6》MSET:一次設置多個鍵值對
MSET key value [key value...]
MSET testStr4 ‘king‘ testStr5 ‘queen‘
7》MGET:一次獲取多個鍵值對
MGET key key ...
MGET testStr4 testStr5
如果沒有這個key也是不會報錯的,會返回一個nil
8》STRLEN:獲取字符串的長度
STRLEN testStr4
如果沒有key則會返回(integer)0
EXISTS key檢測可以是否存在,返回值是0不存在,返回值是1存在
9》SEXNX:只有key不存在的時候才能設置成功
用法和SET一樣,相當於EXISTS + SET的作用
10》SETEX:設置一個鍵多久時間有效(規定時間內可以獲得該數據)單位:秒
語法:SETEX key seconds value
SETEX time 60 ‘times‘
利用TTL獲取剩余時間
語法:TTL key
還有一個PSETEX設置同上,時間是以毫秒為單位,PTTL獲取時間
11》MSETNX:一次設置多個鍵值對,只有所有的可以不存在時,才會設置成功
語法:MSETNX key value [key value]
MSETNX testStr5 ‘a‘ testStr6 ‘b‘
12》INCR:把key中存儲的數字加1
語法:INCR key
SET counter1 10
GET counter1 -->10
INCR counter1 -->11
INCR counter1 -->12
INCR counter1 -->13
這種只能加1,如果相加其他的怎麽辦?
這裏提供了INCRBY,INCRBYFLOAT前者加整數指定步長,後者加上指定浮點數步長
語法:INCRBY key [步長]
INCRBYFLOAT key [浮點步長]
INCRBY counter1 10
GET counter1
INCRBY counter1 3
GET counter1
INCRBY counter1 3.1
INCRBYFLOAT counter1 1.2
GET counter1
INCRBYFLOAT counter1 3
GET counter1
13》DECR:將key中存儲的數字減1
語法和INCR一樣就不過多的贅述,同樣的也有DECRBY但是沒有DECRBYFLOAT,這點就要註意下
以上就是有關String的大部分常用操作
redis(四)