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