版權聲明:本文為博主原創文章,未經博主允許不得轉載。
(8)各類型支持的命令
##----------------string--------------------
set key value
setnx key value
get key
getset key value
mget key1 key2.. keyN
mset key1 val1 key2 val2 ...keyN valN
msetnx key1 val1 key2 val2..keyN valN
incr key
decr key
incrby key integer
decrby key integer
##---------------------List------------------
lpush key string
rpush key string
llen key
lrange key start end 下標-1開始
lset key index value
ltrim key start end 截取
lset key index val 設置指定下標的值
lrem key count value 刪除從頭部開始的count個value
lpop key 從頭部刪除
rpop key 從尾部刪除
blpop key1 key2 key3...keyN 從左到右掃描,返回第一個非空list,進行lpop操作并返回
brpop key1 key2 key3...keyN
list key對應的value是雙向鏈表,還可以實現消息隊列,新消息放隊尾,從隊首獲取
##------------------------Set--------------------------
set類型是一種無須集合,Redis內部通過hashtable實現,復雜度O(1) 快速查找不重復數據
sadd key member 添加元素到集合
srem key member 從集合中刪除元素
spop key 刪除key中的一個隨機元素
srandmember key 通spop,隨機取,不刪除
smove srckey deskey member 刪除srckey中的member元素添加到deskey中
scard key 返回set的元素個數
sismember key member 判斷元素是否在key中
sinter key1 key2 key3..返回key的交集
sinterstore deskey key1 key2 key3 .. keyN 返回所有集合的交集,保存到deskey對應的set
sunion key1 key2 key3...
sunionstore key1 key2 ...keyN
sdiff key1 key2 ...keyN 返回指定元素的差集
sdiffstore key1 key2 ...keyN
smembers key 返回所有的元素,亂序
set常用來記錄某些做過的是,如投票系統每個用戶只能投票一次,可以用日期作為set的key,用戶id作為member,查看是否投過票,可以用日期作為key查詢
##-------------------sorted set ---------------------
與set類似,單是有序集合,用skiplist和hashtable實現,skiplist負責排序,hashtable負責保存數據
可以實現一個具有優先級的隊列
zadd key score member 添加member到集合,元素存在則更新對應的score
zrem key member 刪除元素
zincrby key incr member 增加對應member的score的值,并且重新排序
zrank key member 返回指定元素對應的排名
zrevrank key member 同上,但是score按從大到小排序
zrangebyscore key min max 返回集合中score在給定區間的元素
zcount key min max 返回集合中score在給定區間的數量
zcard key 返回集合中元素的個數
zscore key member 返回指定元素對應的score
zremrangebyrank key min max 刪除集合中排名在給定區間的元素
zremrangebyscore key min value 刪除集合中score在給定區間的元素
sorted set在web中應用較多,比如在排行榜中,按頂貼次數排序,將排序的值設置為score,具體數據設置成value,用戶每次按頂貼,只需要zadd 修改score的值
##--------------------hash類型------------------------------
hash類型是每個key對應一個hashtable,增刪改的時間復雜度都是O(1),適合存儲對象,比如用戶信息對象
把用戶的id設為key,用戶信息保存到hash類型的存儲結構中
新建一個hash類型的對象時,為了節省內存,radis使用zipmap而不是真正的hashtable,當filed或者value的大小超過一定的限制時,radis內部自動轉為hashTable,修改hash-max-zipmap-entries和hash-max-zipmap-value的值,可以修改超出值的大小
hset key filed value
hget key field
hmget key filed1 .. fieldN
hmset key field1 val1 .. fieldN valN
hincrby key field integer
hexists key field
hdel key field
hlen key
hkeys key
hvals key
hgetall key
##------------------redis 排序命令----------------
redis支持對list set sorted set的排序
sort key [by pattern] [limit start count] [get pattern ] [asc|desc] [alpha] [store deskey]
sort key 簡單排序,并返回排序后的結果
[asc | desc] [alpha] 按照逆序或者字母順序排序,可以同時使用
[by pattern] 按照給定模式將元素內容組合成新的key,并按新的key對應的內容排序
[limit start count]限制返回結果的條數
[store deskey] 將結果保存下來
新聞熱點
疑難解答