天天看點

Redis常用資料類型及其相關操作

上一篇文章主要介紹了一下Redis的以及它的安裝。如果大家看的比較仔細的話,應該記得上一篇我有說過的Redis相比記憶體緩存而言,它所支援的資料類型更多。主要有字元串(字元串),清單(連結清單),集(集合),有序集合(有序集合),散列(哈希/字典)這五種類型,當然還有其他的資料類型,比如釋出/訂閱(訂閱) ,交易(事務)等等,隻不過我們平時用的相對比較多的,也就是比較常用的還是前五種資料類型,那麼接下來我就說說前面五種資料類型的相關操作。

串:

是二進制安全的,可以存儲任何長度為512M的字元串,并且可以包含任何資料,比如JPG圖檔或序列化對象

set key value:設定key的值為value,如果key之前已經存在,則用值替代原來的值

擷取密鑰:擷取密鑰的值

getset key newvalue:結果是擷取key的舊值,但是此時key已被賦予了新的值(newvalue)

mset key1 value1 key2 value2:設定多個鍵,這裡key1的值為value1,key2的值為value2

mget key1 key2:擷取多個鍵的值,結果為value1,value2

strlen key:結果為key的值的長度

setex key time value:表示設定key的值為value,有效期時間是時間秒,也就是說,過了這個時間key就變成空了

incr key:使鍵自增,也就是鍵的值+1 ;如果原來沒有這個鍵,那麼這個鍵的值現在就是1,如果原來有鍵,但不是int,比如原來鍵的值是“c ++”,那麼做這個操作就會報錯

incrby key increment:使鍵的值+增量,例如如果原來鍵的值是10,執行了incrby key 100,那麼鍵的值就變成110;如果原來沒有這個鍵,那麼這個鍵的值現在就是增量,同樣如果鍵原來不是INT,那也會報錯

decr key:使得鍵自減,也就是key的值-1 ;,如果原來沒有則為-1,如果原來有,但不是int也會報錯

decrby key decrement :(就不說了,跟上面對比)

Redis常用資料類型及其相關操作

setrange key offset value:表示值從下标為offset的地方開始替代,例如:如果key原來的值為aaaa,那麼執行setrange key 0 bb後,key的值變為bbaa

清單(下标從0開始):

是一個雙端連結清單,它既可以作為棧,也可以作為隊列

lpush key value1 value2 ....:把值插入到連結清單的頭部,lpush key 1 2 3(結果為3,2,1)

rpush key value1 value2 ....:把值插入到連結清單的尾部,rpush key 1 2 3(結果為1,2,3)

lpop key:傳回并删除連結清單頭部元素

rpop key:傳回并删除連結清單尾部元素

llen key:傳回連結清單的個數

lindex key index:傳回連結清單下标為index的值

lrange key start stop:傳回連結清單下标從start到stop的值(以start為準),如果start大于連結清單的長度+1,則結果為空。例如:如果key為1,2,3;那麼lrange key 3 4的值就是空

lrem key count value:删除連結清單中為value的值,删除的個數為絕對值count;這裡分三種情況:count = 0全部删除,count> 0從表頭删除,count <0從表尾删除

組:

是無序,值唯一的字元串類型的元素的集合

sadd key value1 value2 value3 ...:往集合裡面添加元素,如果值重複,隻取一個,sadd key 1 2 2 3,結果為1,2,3

smembers key:擷取集合裡面所有的元素

scard key:傳回集合總的個數

serm key value:删除集合值為value的值

spop key:删除集合中的随機的一個數

sinter key1 key2:求key1,key2的交集

sunion key1 key2:求key1,key2的并集

sdiff key1 key2:求key1,key2的差集,例如:key1的值為1 2 3,key2的值為2 4,那麼交集就是1 3

Sorted Set(根據得分(權重)來進行排序的,預設是升序,名次從0開始):

是有序,值唯一的string類型的元素的集合(是list跟hash結合産生)

zadd key score value:添加元素,得分可以重複,例如zadd key 0 1,zadd key 1 2,zadd key 0 3;結果是1 3 2

zrange key start stop(WITHSCORES):列印名次在[start,stop]的元素,如果加上WITHSCORES就會把值對應的得分列印出來,最好是加上WITHSCORES,這樣看的更仔細

zrank key member:查詢成員這個元素的名次(升序)

zrevrank key member:查詢成員這個元素的名次(倒序)

zrem key value:删除值為value的元素

zremrangebyscore key min max:根據得分來删除元素,得分的範圍在[min,max]之間

zremrangerbyrank key start end:根據排名來删除元素,排名的範圍在[start,end]之間

zcrad key:傳回集合中元素的個數

哈希表:

是一個字元串類型的字段跟字元串類型的值之間的映射

hset key field value:設定key的字段的值為值(重複設定,新值會取代舊值),例如hset key name hongdingyi,那麼key裡面的名稱的值就是hongdingyi

hmset key field1 value1 field2 value2:設定多個字段

hget key field:擷取鍵裡面字段field的值,例如hget key name,result果就是hongdingyi

hmget key field1 field2:擷取多個字段值

hexists key field:檢測字段這個字段是否存在

hlen key:檢視鍵裡面有多少個字段

hdel key field:删除鍵裡面指定的字段

hkeys鍵:傳回鍵裡面所有的字段

hvals鍵:傳回鍵裡面所有的值

hgetall key:将關鍵裡面的已跟蹤值全部顯示出來

以上就是Redis的五種常用資料類型的基本操作,再補下面幾個其他常用指令:

type key:檢查key的類型

del key:删除鍵

重命名key newkey:更改名字

平:用于測試用戶端是否成功連接配接伺服器,傳回PONG代表成功

退出:退出連接配接

dbsize:檢視目前資料庫總共有多少個鍵

fflushdb:删除目前資料庫所有的關鍵

儲存:儲存RDB快照

哦了,到這裡,這篇文章就結束了,了解更多操作,更多細節,請點選Redis的幫助中文English文檔或Redis的英文幫助文檔

下一篇将講述用戶端如何通過API操作Redis的!

繼續閱讀