?
redis學(xué)習(xí)筆記3--set
?
list:有序且,允許重復(fù)數(shù)據(jù)的鏈表 存在POP PUSH的概念
set: 無需序,不能重復(fù)的集合 主要是ADD?
sortSet:有序,不能重復(fù)的集合?
?
整體結(jié)構(gòu)圖:
http://dl.iteye.com/upload/picture/pic/115943/f6e6971a-0216-3fe3-b89c-4ec5b53b762a.jpg
?
?
1.SADD 新增元素
語法: sadd key value?
實(shí)踐:
redis 127.0.0.1:6379> sadd s1 1
(integer) 1
redis 127.0.0.1:6379> sadd s1 2?
(integer) 1
redis 127.0.0.1:6379> sadd s2 3?
(integer) 1
redis 127.0.0.1:6379> sadd s1 1 ? ? ?// 重復(fù)數(shù)據(jù)不會(huì)被添加
(integer) 0
redis 127.0.0.1:6379>
?
2.SREM 刪除元素
語法:srem key value?
實(shí)踐:
redis 127.0.0.1:6379> smembers s1?
1) "1"
2) "2"
redis 127.0.0.1:6379> srem s1 1 ? ? ? // 刪除s1中的1元素
(integer) 1
redis 127.0.0.1:6379> smembers s1?
1) "2"
redis 127.0.0.1:6379>?
?
3.SMEMBERS 列出所有信息 類似list的 lrange
語法:smembers key?
實(shí)踐:
redis 127.0.0.1:6379> smembers s1?
1) "2"
redis 127.0.0.1:6379>?
?
?
4.SISMEMBER 判斷是否存在該元素
語法:sismember key value?
1:存在該元素
0:不存在
?
實(shí)踐:
redis 127.0.0.1:6379> sismember s1 1 ? 存在的元素返回1
(integer) 1
redis 127.0.0.1:6379> sismember s1 3 ? 不存在的元素返回0
(integer) 0
redis 127.0.0.1:6379>
?
5.SCARD 計(jì)算集合中元素總數(shù) size
語法:scard key?
實(shí)踐:
redis 127.0.0.1:6379> scard s1 ? ? // 返回集合中元素個(gè)數(shù)
(integer) 2
redis 127.0.0.1:6379>?
?
6.SMOVE 將集合中一個(gè)元素轉(zhuǎn)移到另一個(gè)集合中
語法: smove ?source destination value?
實(shí)踐:
redis 127.0.0.1:6379> smembers s1?
1) "1"
2) "2"
redis 127.0.0.1:6379> smembers s2
(empty list or set)
redis 127.0.0.1:6379> smove s1 s2 1 ? ?// 將S1中的1移動(dòng)到了S2中
(integer) 1
redis 127.0.0.1:6379> smembers s1?
1) "2"
redis 127.0.0.1:6379> smembers s2
1) "1"
redis 127.0.0.1:6379>
?
7.SPOP 隨機(jī)彈出一個(gè)元素
語法: spop key?
實(shí)踐:
redis 127.0.0.1:6379> smembers s1?
1) "1"
2) "2"
3) "3"
4) "4"
redis 127.0.0.1:6379> spop s1 ? ? ? ? ? // 隨機(jī)彈出一個(gè)元素
"3"
redis 127.0.0.1:6379> smembers s1?
1) "1"
2) "2"
3) "4"
redis 127.0.0.1:6379>?
?
8.SRANDMEMBER 隨機(jī)獲取一個(gè)元素,但是不彈出集合,這個(gè)是跟SPOP唯一的區(qū)別
語法: SRANDMEMBER
實(shí)踐:
redis 127.0.0.1:6379> smembers s1?
1) "1"
2) "2"
3) "4"
redis 127.0.0.1:6379> SRANDMEMBER s1 ? // ?隨機(jī)取得一個(gè)數(shù)據(jù),但是元素不會(huì)丟失
"4"
redis 127.0.0.1:6379> smembers s1?
1) "1"
2) "2"
3) "4"
redis 127.0.0.1:6379>
?
9.SINTER 取兩個(gè)集合的交集
語法:SINTER key1 key2?
實(shí)踐:
redis 127.0.0.1:6379> smembers s2?
1) "1"
2) "10"
redis 127.0.0.1:6379> smembers s1?
1) "1"
2) "2"
3) "4"
redis 127.0.0.1:6379> sinter s1 s2 ? ?// 兩個(gè)集合共同的元素是 1?
1) "1"
redis 127.0.0.1:6379>
?
10.SINTERSTORE 取兩個(gè)集合的交集并保存到另一個(gè)集合中?
語法:SINTERSTORE destination key1 key2?
實(shí)踐:
redis 127.0.0.1:6379> smembers s1
1) "1"
2) "2"
3) "3"
redis 127.0.0.1:6379> smembers s2
1) "1"
2) "10"
redis 127.0.0.1:6379> smembers s3 ? ? ? ? ? ? ? ? //這個(gè)時(shí)候S3是空的
(empty list or set)
redis 127.0.0.1:6379> sinterstore s3 ?s1 s2 ? ? ? //取兩個(gè)的交集并保存到s3 中
(integer) 1
redis 127.0.0.1:6379> smembers s3
1) "1"
redis 127.0.0.1:6379>
?
11.SUNION ?取兩個(gè)集合的并集?
語法:SUNION key1 key2?
實(shí)踐:
redis 127.0.0.1:6379> smembers s1
1) "1"
2) "2"
3) "3"
redis 127.0.0.1:6379> smembers s2
1) "1"
2) "10"
redis 127.0.0.1:6379> sunion s1 s2 ? ? ? ? ? ? ?// 取得兩個(gè)集合的并集
1) "1"
2) "2"
3) "3"
4) "10"
redis 127.0.0.1:6379>?
?
12.SUNIONSTORE 取兩個(gè)集合的并集并保存到另一個(gè)集合中?
語法: SUNIONSTORE destination key1 key2 ?
實(shí)踐:
redis 127.0.0.1:6379> smembers s1
1) "1"
2) "2"
3) "3"
redis 127.0.0.1:6379> smembers s2
1) "1"
2) "10"
redis 127.0.0.1:6379> sunionstore ?s4 s1 s2?
(integer) 4
redis 127.0.0.1:6379> smembers s4
1) "1"
2) "2"
3) "3"
4) "10"
redis 127.0.0.1:6379>?
?
13.SDIFF 取兩個(gè)集合的差集
語法:SDIFF key1 key2
實(shí)踐:
redis 127.0.0.1:6379> smembers s1
1) "1"
2) "2"
3) "3"
redis 127.0.0.1:6379> smembers s2
1) "1"
2) "10"
redis 127.0.0.1:6379> sdiff s1 s2 ? ?// 獲取的是兩個(gè)之間的差集
1) "2"
2) "3"
redis 127.0.0.1:6379>?
?
14.SDIFFSTORE 取兩個(gè)集合的差集 并保存到第三個(gè)集合中
語法:SDIFFSTORE key1 key2 diffSet
實(shí)踐:
redis 127.0.0.1:6379> smembers s1
1) "1"
2) "2"
3) "3"
redis 127.0.0.1:6379> smembers s2
1) "1"
2) "10"
redis 127.0.0.1:6379> sdiffstore s5 ?s1 s2 ? ?// 將差集的數(shù)據(jù)保存到s5中?
(integer) 2
redis 127.0.0.1:6379> smembers s5
1) "2"
2) "3"
已有 0 人發(fā)表留言,猛擊->>這里<<-參與討論
ITeye推薦