Redis初探05——Redis的sets類型及操作

sets類型及操作
set是集合,他是String類型的無序集合。set是通過hashtable實現的,添加、刪除和查找的複雜度都是O(1)。對集合我們可以取並集、交集、差集。通過這些操作我們可以實現sns中的好友推薦和blog中的tag功能。沒有重複元素。
1、sadd
向名稱爲key的set中添加元素。 sadd set集合名稱 元素。若添加的重複元素則不替換,返回0;

127.0.0.1:6379> sadd myset hello
(integer) 1
127.0.0.1:6379> sadd myset world
(integer) 1
127.0.0.1:6379> sadd myset world
(integer) 0
127.0.0.1:6379> smembers myset
1) "world"
2) "hello"

2、smembers 查看set集合中的元素

3、srem
刪除名稱爲key的set中的元素。srem set名稱 元素。刪除成功返回1,否則返回0

127.0.0.1:6379> sadd myset2 one
(integer) 1
127.0.0.1:6379> sadd myset2 two
(integer) 1
127.0.0.1:6379> sadd myset2 three
(integer) 1
127.0.0.1:6379> smembers myset2
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> srem myset2 one
(integer) 1
127.0.0.1:6379> smembers myset2
1) "three"
2) "two"
127.0.0.1:6379> srem myset2 one
(integer) 0
127.0.0.1:6379>

4、spop
隨機返回並刪除名稱爲key的set中的一個元素。spop set名稱

127.0.0.1:6379> sadd myset3 two
(integer) 1
127.0.0.1:6379> sadd myset3 three
(integer) 1
127.0.0.1:6379> sadd myset3 four
(integer) 1
127.0.0.1:6379> sadd myset3 five
(integer) 1
127.0.0.1:6379> smembers myset3
1) "five"
2) "three"
3) "two"
4) "four"
127.0.0.1:6379> spop myset3
"four"
127.0.0.1:6379> spop myset3
"five"
127.0.0.1:6379> spop myset3
"two"
127.0.0.1:6379> smembers myset3
1) "three"
127.0.0.1:6379>

5、5、sdiff
返回所有給定set與第一個set的差集。sdiff set1 set2.注意:以第一個set爲主,即返回的差集是set1中存在的。

127.0.0.1:6379> sadd myset3 two
(integer) 1
127.0.0.1:6379> sadd myset1 two
(integer) 1
127.0.0.1:6379> smembers myset3
1) "two"
2) "three"
127.0.0.1:6379> smembers myset1
1) "two"
2) "one"
127.0.0.1:6379> sdiff myset1 myset3
1) "one"
127.0.0.1:6379> sdiff myset3 myset1
1) "three"

6、sidffstore
返回所有給定set與第一個set的差集,並將結果存在另一個set集合中。sdiffstore 保存差集的set 第一個set(爲主) 第二個set。

127.0.0.1:6379> sdiff myset1 myset3
1) "one"
127.0.0.1:6379> sdiff myset3 myset1
1) "three"
127.0.0.1:6379> sdiffstore myset4 myset1 myset3
(integer) 1
127.0.0.1:6379> smembers myset4
1) "one"

7、sinter
返回所給定set的交集。sinter set1 set2.

127.0.0.1:6379> sinter myset1 myset3
1) "two"

8、sinterstore
返回給定set的交集,並將結果存在另一個set集合中。 sinterstore 保存交集的set set1 set2.

127.0.0.1:6379> sinterstore myset5 myset1 myset3
(integer) 1
127.0.0.1:6379> smembers myset5
1) "two"

9、sunion
返回給定set的並集。sunion set1 set2

127.0.0.1:6379> sunion myset1 myset3
1) "three"
2) "two"
3) "one"

10、sunionstore
返回給定set的並集,並將結果存在另一個set集合中。sunionstore 保存並集的set set1 set2.

127.0.0.1:6379> sunionstore myset6 myset1 myset3
(integer) 3
127.0.0.1:6379> smembers myset6
1) "three"
2) "two"
3) "one"

11、smove
從第一個keyt對應的set中刪除元素,並將此元素添加到第二個對應的set中。smove set1(刪除) set2(添加) 元素。

127.0.0.1:6379> smembers myset1
1) "two"
2) "one"
127.0.0.1:6379> smembers myset3
1) "two"
2) "three"
127.0.0.1:6379> smove mset1 myset3 one
(integer) 0
127.0.0.1:6379> smove myset1 myset3 one
(integer) 1
127.0.0.1:6379> smembers myset1
1) "two"
127.0.0.1:6379> smembers myset3
1) "two"
2) "three"
3) "one"

12、scard
返回set中的元素個數。scard set名稱。

127.0.0.1:6379> smembers myset3
1) "two"
2) "three"
3) "one"
127.0.0.1:6379> scard myset3
(integer) 3

13、sismember
查找元素是否是set中的元素。sismember set名稱 查找元素。存在返回1,否則返回0。

127.0.0.1:6379> smembers myset3
1) "two"
2) "three"
3) "one"
127.0.0.1:6379> scard myset3
(integer) 3
127.0.0.1:6379> sismember myset3 three
(integer) 1
127.0.0.1:6379> sismember myset3 five
(integer) 0

14、srandmember
隨機返回set中的一個元素,但不刪除元素。srandmember set名稱。

127.0.0.1:6379> srandmember myset3
"two"
127.0.0.1:6379> srandmember myset3
"one"
127.0.0.1:6379> smembers myset3
1) "two"
2) "three"
3) "one
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章