Redis學習第五課:Redis Set類型及操做

Set是集合,它是string類型的無序集合。set是經過hash table實現的,添加、刪除和查找的複雜度都是O(1)。blog

對集合咱們能夠取並集、交集、差集。經過這些操做咱們能夠實現SNS中的好友推薦和blog的tag功能。three

Set集合操做:rem

sadd:向名稱爲Key的set中添加元素,同一集合中不能出現相同的元素值。(用法:sadd set集合名稱 元素值)string

127.0.0.1:6379> sadd myset1 hellohash

(integer) 1io

127.0.0.1:6379> sadd myset1 worldtable

(integer) 1nio

127.0.0.1:6379> smembers myset1ember

1) "hello"數據

2) "world"

127.0.0.1:6379> sadd myset1 hello

(integer) 0

srem:刪除名稱爲key的set中的元素。(用法:srem set集合名稱 要刪除的元素值)

127.0.0.1:6379> smembers myset1

1) "hello"

2) "fine"

3) "world"

127.0.0.1:6379> srem myset1 fine

(integer) 1

127.0.0.1:6379> smembers myset1

1) "hello"

2) "world"

spop:隨機返回並刪除名稱爲key的set中一個元素。(用法:srem set集合名稱)

127.0.0.1:6379> smembers myset1

1) "hello"

2) "world"

127.0.0.1:6379> spop myset1

"hello"

127.0.0.1:6379> smembers myset1

1) "world"

sdiff:返回全部給定key與第一個key的差集。(用法:sdiff set集合1 set集合2)

127.0.0.1:6379> smembers myset2

1) "two"

2) "one"

127.0.0.1:6379> smembers myset3

1) "three"

2) "two"

127.0.0.1:6379> sdiff myset2 myset3

1) "one"

sdiffstore:返回全部給定key與第一個key的差集,並將結果存爲另外一個key。(用法:sdiffstore 差集數據存入的集合 set集合1 set集合2)

127.0.0.1:6379> smembers myset3

1) "one"

2) "two"

3) "four"

127.0.0.1:6379> smembers myset4

1) "two"

2) "one"

127.0.0.1:6379> sdiffstore myset5 myset3 myset4

(integer) 1

127.0.0.1:6379> smembers myset5

1) "four"

sinter:返回全部給定key的交集。(用法:sinter set集合1 set集合2)

127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset4
1) "two"
2) "one"
127.0.0.1:6379> sinter myset3 myset4
1) "two"
2) "one"

sinterstore:返回全部給定Set集合的交集,並將結果存爲另外一個set集合。(用法:sinterstore 交集結果集合 set集合1 set集合2)

127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset4
1) "two"
2) "one"
127.0.0.1:6379> sinterstore myset6 myset3 myset4
(integer) 2
127.0.0.1:6379> smembers myset6
1) "one"
2) "two"

sunion:返回全部給定key的並集。(用法:sunion set集合1 set集合2)

127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset4
1) "two"
2) "one"
127.0.0.1:6379> sunion myset3 myset4
1) "two"
2) "one"
3) "four"

sunionstore:返回全部給定key的並集,並將結果存爲另外一個set集合。(用法:sunionstore 並集結果集合 set集合1 set集合2)

127.0.0.1:6379> smembers myset3
1) "one"
2) "two"
3) "four"
127.0.0.1:6379> smembers myset4
1) "two"
2) "one"
127.0.0.1:6379> sunionstore myset7 myset3 myset4
(integer) 3
127.0.0.1:6379> smembers myset7
1) "two"
2) "one"
3) "four"

smove:從第一個集合中移除一個元素到另外一個集合中。(用法:smove 集合1 集合2 要移除的元素值)

127.0.0.1:6379> smembers myset7
1) "two"
2) "one"
3) "four"
127.0.0.1:6379> smembers myset5
1) "four"
127.0.0.1:6379> smove myset7 myset5 one
(integer) 1
127.0.0.1:6379> smembers myset5
1) "one"
2) "four"

scard:返回名稱爲key的set集合的元素個數。(用法:scard 集合1)

 127.0.0.1:6379> smembers myset5
1) "one"
2) "four"
127.0.0.1:6379> scard myset5
(integer) 2

sismember:判斷某個值是不是集合的元素。(用法:sismember 集合1 指定的元素值)

127.0.0.1:6379> smembers myset7
1) "two"
2) "four"
127.0.0.1:6379> sismember myset7 two
(integer) 1
127.0.0.1:6379> sismember myset7 five
(integer) 0

srandmember:隨機返回集合中的一個元素,但不刪除元素。(用法:srandmember 集合1)

127.0.0.1:6379> smembers myset31) "one"2) "two"3) "four"127.0.0.1:6379> srandmember myset3"four"127.0.0.1:6379> srandmember myset3"four"

相關文章
相關標籤/搜索