日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

Redis实战(三):Redis的List、Set、Hash、sorted_set、skip list

發(fā)布時(shí)間:2024/2/28 数据库 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis实战(三):Redis的List、Set、Hash、sorted_set、skip list 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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ò),歡迎將生活随笔推薦給好友。