String類型(上節回顧)
List 類型
help @list查看幫助
可以用List類型實現一個棧:
lpush k1 a b c d e左邊push
lpop k1 a b c d e左邊pop(后進先出)
可以用List類型實現一個隊列:
lpush k1 a b c d e左邊push
rpop k1 a b c d e右邊pop(先進先出)
獲取List中某個范圍之間的所有元素(支持負向索引)
LRANGE k1 0 -1:獲取整個List
所有關于List的命令:
BLPOP key
[key
...] timeout
(阻塞,單播隊列
)刪除并獲取列表中的第一個元素,或塊中的第一個元素,直到有一個可用
BRPOP key
[key
...] timeout 刪除并獲取列表中的最后一個元素,或塊,直到有一個可用
BRPOPLPUSH source destination timeout 從列表中彈出一個值,推送到另一個列表并返回
;或阻塞,直到可用為止
LINDEX key index 通過索引從列表中獲取元素
LINSERT key BEFORE
|AFTER pivot value 在列表的另一個元素之前或之后插入一個元素
LLEN key 獲取列表的長度
LPOP key 刪除并獲取列表中的第一個元素
LPUSH key value
[value
...] 在列表前添加一個或多個值
LPUSHX key value 僅當列表存在時,在列表前添加一個值
LRANGE key start stop 從列表中獲取元素的范圍
LREM key count value 從列表中刪除元素
LSET key index value 通過索引設置列表中元素的值
LTRIM key start stop 將列表修剪到指定范圍
RPOP key 刪除并獲取列表中的最后一個元素
RPOPLPUSH source destination 刪除列表中的最后一個元素,將其添加到另一個列表并返回
RPUSH key value
[value
...] 向列表追加一個或多個值
RPUSHX key value 僅當列表存在時,向列表追加一個值
HashMap 類型
help @hash
HDEL key field
[field
...] 刪除一個或多個散列字段
HEXISTS key field 確定散列字段是否存在
HGET key field 獲取散列字段的值
HGETALL key 獲取散列中的所有字段和值
HINCRBY key field increment 將哈希字段的整數值按給定的數字遞增
HINCRBYFLOAT key field increment 將哈希字段的浮點值按給定的量遞增
HKEYS key 獲取散列中的所有字段
HLEN key 獲取散列中的字段數
HMGET key field
[field
...] 獲取所有給定哈希字段的值
HMSET key field value
[field value
...] 將多個哈希字段設置為多個值
HSCAN key cursor
[MATCH pattern
] [COUNT count
] 遞增迭代哈希字段和關聯值
HSET key field value 設置散列字段的字符串值
HSETNX key field value 設置散列字段的值,僅當該字段不存在時
HSTRLEN key field 獲取散列字段值的長度
HVALS key 獲取散列中的所有值
業務場景:微博點贊,數量增加;收藏、詳情頁
Set 類型
List 是有序的(插入順序)
Set 是亂序的,去重的
SADD key member
[member
...] 向集合中添加一個或多個成員
SPOP key
[count
] 從集合中移除并返回一個或多個隨機成員
SREM key member
[member
...] 從集合中刪除一個或多個成員
SDIFF key
[key
...] 方向性地求差集
SUNION key
[key
...] 多個set求并集
SINTER key
[key
...] 多個set取交集
SDIFFSTORE destination key
[key
...] 減去多個集合并將結果集存儲在一個鍵中
SINTERSTORE destination key
[key
...] 交叉多個集合并將結果集存儲在一個鍵中
SISMEMBER key member 確定給定值是否是集合的成員
SMEMBERS key 獲取集合中的所有成員
SCARD key 獲取集合中的成員數
SMOVE source destination member 將成員從一個集合移動到另一個集合
SRANDMEMBER key
[count
] 從集合中隨機獲取一個或多個成員count是正數:取出一個不重復的結果集(不能超過已有集)count是負數:取出一個有可能重復的結果集(一定滿足你要求的數量)人多于獎品
/獎品多于人
/可以重復
/不能重復 不同的場景
SSCAN key cursor
[MATCH pattern
] [COUNT count
]
SUNIONSTORE destination key
[key
...] 添加多個集合并將結果集存儲在一個鍵中
SortedSet 類型
自帶元素排序;自帶去重
你想怎么排序?
- 名稱
- 含糖量(前端不展示)
- 大小(前端不展示)
- 價格(前端不展示)
- 粉絲數(前端不展示)
因此,除了元素本身以外,你需要有分值這個維度,用來排序。
如果分值相同,則按照名稱字典序排列。
正序?逆序?
每個元素都有自己的正負向索引
help @sorted_set
BZPOPMAX key
[key
...] timeout 刪除并返回得分最高的成員從一個或多個sorted set
,或阻塞
,直到一個是可用的
BZPOPMIN key
[key
...] timeout 刪除并返回分數最低的成員從一個或多個sorted set
,或阻塞
,直到一個是可用的
ZADD key
[NX
|XX
] [CH
] [INCR
] score member
[score member
...] 向sorted set中添加一個或多個成員,如果已經存在,則更新其分數
ZCARD key 獲取sorted set中的成員數
ZCOUNT key min max 在給定值內對sorted set中的成員進行計數
ZINCRBY key increment member 遞增sorted set中成員的分數
ZINTERSTORE destination numkeys key
[key
...] [WEIGHTS weight
] [AGGREGATE SUM
|MIN
|MAX
] 交叉多個sorted set,并將結果sorted set存儲在一個新的鍵中
ZLEXCOUNT key min max 計算給定字典法范圍之間sorted set中的成員數
ZPOPMAX key
[count
] 刪除并返回sorted set中得分最高的成員
ZPOPMIN key
[count
] 刪除并返回sorted set中得分最低的成員
ZRANGE key start stop
[WITHSCORES
] Return a range of members in a sorted set
, by index 按索引返回sorted set中成員的范圍
ZRANGEBYLEX key min max
[LIMIT offset count
] 按分數返回sorted set中的成員范圍
ZRANGEBYSCORE key min max
[WITHSCORES
] [LIMIT offset count
] 按分數返回sorted set中的成員范圍
ZRANK key member 確定sorted set中成員的索引
ZREM key member
[member
...] 從sorted set中移除一個或多個成員
ZREMRANGEBYLEX key min max 刪除給定字典排序范圍之間sorted set中的所有成員
ZREMRANGEBYRANK key start stop 刪除給定索引內sorted set中的所有成員
ZREMRANGEBYSCORE key min max 刪除sorted set中給定分數內的所有成員
ZREVRANGE key start stop
[WITHSCORES
] 按索引返回sorted set中成員的范圍,分數從高到低排序
ZREVRANGEBYLEX key max min
[LIMIT offset count
] 按字典順序從較高的字符串到較低的字符串,返回sorted set中的成員的范圍。
ZREVRANGEBYSCORE key max min
[WITHSCORES
] [LIMIT offset count
] 按分數返回sorted set中的成員范圍,分數從高到低排序
ZREVRANK key member 確定sorted set中成員的索引,分數從高到低排序
ZSCAN key cursor
[MATCH pattern
] [COUNT count
] 遞增迭代sorted set元素和相關分數
ZSCORE key member 獲取sorted set中與給定成員相關的分數
ZUNIONSTORE destination numkeys key
[key
...] [WEIGHTS weight
] [AGGREGATE SUM
|MIN
|MAX
] 多個sorted set求并集,分數相同時,將分數取最大
/最小
/平均,并將結果sorted set存儲到一個新鍵中
ZUNIONSTORE 示例:
排序是怎么實現的?skip list 跳躍表
總結
以上是生活随笔為你收集整理的Redis实战(三):Redis的List、Set、Hash、sorted_set、skip list的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。