redis中set集合的一些用法

2021-09-24 23:06:41 字數 2230 閱讀 9203

一.set型別

set是乙個集合,它是string型別的無序集合,set是通過hash table實現的,新增,刪除,查詢的時間複雜度都是o(1),對於集合我們可以取並集,交集,差集。通過這些操作我們可以實現sns中好友推薦和blog的tag功能。

set常見操作:

(1)sadd

向乙個集合中新增乙個元素。例如:sadd set1 hello

(2)smembers

檢視集合中的所有元素。例如:smembers set1

(3)srem

刪除集合中乙個指定的元素。例如:srem set1 hello

(4)spop

隨機彈出set集合中德乙個元素。例如:spop set1

(5)sdiff

求兩個集合的差集,比如sdiff set1 set2,表示保留set1中與set2不同的所有元素。

(6)sdiffstore

將返回的差集存進乙個集合。例如:sdiffstore set3 set1 set2,表示把set1與set2的差集存進

集合set3。

(7)sinter

返回給定兩個集合的交集。例如:sinter set1 set2,表示返回set1和set2的交集。

(8)sinterstore

將兩個集合的交集存進乙個集合。例如:sinterstore set3 set1 set2,表示把set1和set2的交集

存進集合set3。

(9)sunion

返回給定兩個集合的並集。例如:sunion set1 set2,表示返回set1和set2的並集。

(10)sunionstore

將兩個集合的並集存進乙個集合。例如:sunionstore set3 set1 set2,表示把set1和set2的並集

存進集合set3

(11)smove

從第乙個key對應的set中移除member並新增到第二個對應的集合中。

例如:smove set1 set2 hello,表示把set1中的hello元素移動到set2中。

(12)scard

返回key對應集合的元素的個數。例如:scard set1。

(13)sismember

判斷某乙個元素是否為集合的元素。比如:sismember set1 hello,表示判斷hello是否為set1的中

的元素。

(14)srandmember

隨機返回名稱為key的set的乙個元素。例如:srandmember set1。

二.zset型別

zset是在set的基礎上增加了順序,形成乙個有序的集合。

zset的常見操作:

(1)zadd

向有序集合zset中增加乙個元素。例如:zadd zset 1 hello

(2)zrange

輸出zset中指定範圍內的的所有元素,按照score從小到大的順序。

例如:zrange zset 0 -1 withscores,表示輸出有序集合zset中所有的元素,並且輸出順序號。

(3)zrem

刪除名稱為key的zset集合中的元素member。例如:zrem set1 hello。

(4)zincrby

把有序集合zset中的指定元素的序列號加上指定的值。例如:zincrby zset 4 hello

(5)zrank

返回名稱為key的zset集合中元素的排名,按照下標從小到大的排名。例如:zrank zset hello。

(6)zrevrank

返回名稱為key的zset集合中元素的排名,按照下表從大到小的排名。例如:zrevrank zset hello。

(7)zrevrange

按照score從大到小的順序輸出集合中所有元素。例如:zrevrange zset 0 -1 withscores。

(8)zrangebyscore

返回集合中給定區間的元素。例如:zrangebyscore zset 2 3 withscores

(9)zcount

返回集合中score在給定區間的數量。zcount zset 2 3

(10)zcard

返回集合中元素的個數。

(11)zremrangebyrank

按照索引來刪除給定區間的元素。例如:zremrangebyrank zset 1 2

(12)zremrangebyscore

刪除score在指定範圍內的元素。例如:zremrangebyscore zset 1 2

Python 集合Set的一些內容

1 集合可以去重 l 1,1,2,2,3 set l list set l 1,2,3 2 集合的中綴運算子 以集合a和b為例 3 集合字面量 除了空集,集合的字面量可以寫成的形式,如 s type s 但若想建立乙個空集,則必須用set 方法,如果寫成 則建立的是乙個空字典。s set 4 集合的...

redis中set集合的命令

1.sadd 新增 2.srem 刪除 3.smembers 檢視set裡面的值 4.sismember 判斷某個元素是否是集合中元素 返回1 是,返回0 不是 5.sdiff 差集,相差的內容,跟key的前後位置有關,第乙個key中的不在第二個key中的元素 6.sinter 交集,兩個集合中都有...

set中的greater 以及set的一些用法

當你在vs2013中想 引入greater,發現找不到,這個時候只要新增標頭檔案 include 即可,less是不需要的 set練習.cpp 定義控制台應用程式的入口點。include stdafx.h include include include std greater pragma warn...