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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis命令之set和zset的操作

發布時間:2024/3/12 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis命令之set和zset的操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

redis里面常用的操作set類型(每個元素都是一個值)的命令:

sadd? key member1 [member2 member3 ....]:向key對應的set中添加

sinter set1 set2:交集?

sunion? set1 set2:并集

sdiff? set1 set2:差集 前后順序影響結果

smembers key :查詢所有元素

sismember oneset member:查詢member是否在oneset?中,返回0或1

scard key:返回set的元素個數

smove sourceset? destinationset? member:把member從源集合sourceset移動到目標集合destinationset??

srem? oneset? value1 value2...:從oneset??表示的set中刪除元素value1? value2....

redis里面的set與list有什么區別?

????????set是無序的,因此沒有像list那樣的在頭部插入還是在尾部插入的說法。set中放入的元素也沒有先后之分。跟list相同的是,你也可以把set理解成一個箱子,往里面放東西就是了。

1.定義兩個set,一個叫friends,元素有xinjiao qinghuai zhao qian;一個叫workmate,元素有fanfan caodan zhao? sun?

192.168.23.112:6379>?sadd?friends?xinjiao?qinghuai?zhao?qian (integer)?4 192.168.23.112:6379>?sadd?workmate?fanfan?caodan?zhao??sun (integer)?4 192.168.23.112:6379>?smembers?workmate 1)?"caodan" 2)?"fanfan" 3)?"sun" 4)?"zhao" 192.168.23.112:6379>?smembers?workmate 1)?"caodan" 2)?"fanfan" 3)?"sun" 4)?"zhao" 192.168.23.112:6379>?scard?friends (integer)?4

2.求集合set的交集、并集、差集

192.168.23.112:6379>?sinter?friends?workmate 1)?"zhao" 192.168.23.112:6379>?sunion?friends?workmate 1)?"qinghuai" 2)?"sun" 3)?"fanfan" 4)?"qian" 5)?"xinjiao" 6)?"caodan" 7)?"zhao" 192.168.23.112:6379>?sdiff?friends?workmate 1)?"xinjiao" 2)?"qian" 3)?"qinghuai" 192.168.23.112:6379>?sdiff??workmate??friends 1)?"fanfan" 2)?"caodan" 3)?"sun"

注意:這些集合的交集、并集、差集操作并不會影響redis集合里面的值,只是求出計算后的結果罷了。

3.判斷一個元素在集合中是否存在用sismember,存在返回1,不存在返回0

192.168.23.112:6379>?sismember?friends?haha (integer)?0 192.168.23.112:6379>?sismember?friends?zhao (integer)?1

4.元素在集合之間的移動

192.168.23.112:6379>?smove?friends?workmate?qian (integer)?1 192.168.23.112:6379>?smembers?friends 1)?"xinjiao" 2)?"qinghuai" 3)?"zhao" 192.168.23.112:6379>?smembers?workmate 1)?"caodan" 2)?"fanfan" 3)?"sun" 4)?"zhao" 5)?"qian"

說明:smove第一個參數是源頭,第二個參數是目的地,第三個參數是要移動的值。

再來看看zset命令。

???zset在redis里面指的是sort set類型,顧名思義,這種類型就是可以排序的set,因為在zset里面的每個元素都是值和權的集合,redis里面常用的zset相關命令如下:

zadd zset1 score1 member1 [score2 member2....]:如 zadd topic 33 9 ,id位9的帖子點擊量為33

zrevrange zset1 [start end] withscores:把zset1按權逆序排列,返回排列后的member,start end指定要操作的個數,下標從0開始,[]表示閉區間,下同,withscores可加可不加,表示是否顯示member對應的權值

zrange zset1 [start end] withscores:和zrevrange類似,只不過是正常順序排列,withscores可加可不加,表示是否顯示score

zrank zset1?member:把名為zset1的sort set 按權從小到大排序,并返回member在排序后的zset中的下標(從0開始)

zrevrank zset1?member:類似zrank,唯一不同的是zrevrank是按權從大到小排序

zcard zset1:zset1里面的元素個數

zscore zset1 member:返回member對應的權值

zrem zset1? member:按member名稱來刪除指定元素

zincrby zset1 num member:按num的大小增加member在zset1中的權值,即修改menber的權值

zremrangebyrank zset1 [min max]:先按權按從小到大來排序,再刪除下標在min和max之間的元素,min 和max分別指從0開始的下標

zcount zset1 [min max]:返回score值在min和max之間的元素個數

一、定義一個aihao的有序集合

192.168.23.112:6379>?zadd?aihao?100?play??50?work?60?read?90?money?88?film?0?sad?99??happy (integer)?7

二、zrange與zrevrange,可以看到zrange就是取出aihao里面的members成員,并默認按權值從小到大的順序排序?

192.168.23.112:6379>?zrange?aihao?0?100 1)?"sad" 2)?"work" 3)?"read" 4)?"film" 5)?"money" 6)?"happy" 7)?"play" 192.168.23.112:6379>?zrange?aihao?0?100?withscores1)?"sad"2)?"0"3)?"work"4)?"50"5)?"read"6)?"60"7)?"film"8)?"88"9)?"money" 10)?"90" 11)?"happy" 12)?"99" 13)?"play" 14)?"100" 192.168.23.112:6379>?zrevrange?aihao?0?100 1)?"play" 2)?"happy" 3)?"money" 4)?"film" 5)?"read" 6)?"work" 7)?"sad" 192.168.23.112:6379>?zrevrange?aihao?0?100?withscores1)?"play"2)?"100"3)?"happy"4)?"99"5)?"money"6)?"90"7)?"film"8)?"88"9)?"read" 10)?"60" 11)?"work" 12)?"50" 13)?"sad" 14)?"0"

三、zrank與zrevrank,拿zrank來說,其實就是先把aihao執行zrange排序,再取出happy在排序后的集合中的下標并返回

192.168.23.112:6379>?zrank?aihao?happy (integer)?5 192.168.23.112:6379>?zrevrank?aihao?happy (integer)?1

四、修改已有member的權值

192.168.23.112:6379>?zincrby?aihao?5?money "95" 192.168.23.112:6379>?zscore?aihao?money "95"

五、zremrangebyrank?

192.168.23.112:6379>?zrange?aihao?0?100 1)?"sad" 2)?"work" 3)?"read" 4)?"film" 5)?"money" 6)?"happy" 7)?"play" 192.168.23.112:6379>?zremrangebyrank?aihao?1?2 (integer)?2 192.168.23.112:6379>?zrange?aihao?0?100 1)?"sad" 2)?"film" 3)?"money" 4)?"happy" 5)?"play"

六、zcount返回權值在指定區間內的元素個數

192.168.23.112:6379>?zrange?aihao?0?100?withscores1)?"sad"2)?"0"3)?"film"4)?"88"5)?"money"6)?"95"7)?"happy"8)?"99"9)?"play" 10)?"100" 192.168.23.112:6379>?zcount?aihao?0?90 (integer)?2

總結

以上是生活随笔為你收集整理的redis命令之set和zset的操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。