redis的集合以無序的方式儲存多個各不相同的元素,使用者可以快速對集合執行新增元素、移除元素以及檢查元素是否存在於集合中的操作。
命令用例
描述注意
sadd
sadd key item[item …]
將乙個或多個元素插入到集合中,並返回被新增元素當中原本不存在於集合中的數量
srem
srem key item[item …]
從集合中移除乙個或多個元素,並返回移除元素的個數
sismember
sisrember key item
檢查元素是否存在,存在為1,不存在為0
smembers
smembers key
返回集合中所有的元素
scard
scard key
返回集合中的元素個數
srandmember
srandmember key [count]
返回集合中隨機的乙個或多個元素,如果count>0則返回元素不會重複,否則可能會重複
spop
spop key
隨機彈出乙個元素,並返回被移除的元素
smove
smove source-key dest-key item
如果source集合包含元素item,則將item從source移除並新增到dest集合中,如果item成功移除則返回1,否則返回0
插入1和2,並返回2,說明插入成功了2個元素
127.0.0.1:6379> sadd set1 1 2
(integer) 2
再次插入元素1,返回0,說明集合中已經有元素1了
127.0.0.1:6379> sadd set1 1
(integer) 0
移除集合中存在的元素
127.0.0.1:6379> srem set1 1
(integer) 1
移除集合中不存在的元素
127.0.0.1:6379> srem set1 1
(integer) 0
移除集合中的多個元素
127.0.0.1:6379> srem set1 1 2 3
(integer) 1
返回的值為移除成功元素的個數
127.0.0.1:6379> sadd set1 1 2 3 4
(integer) 4
127.0.0.1:6379> sismember set1 1
(integer) 1
127.0.0.1:6379> smembers set1
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> scard set1
(integer) 4
127.0.0.1:6379> srandmember set1
"2"127.0.0.1:6379> srandmember set 10
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> srandmember set -10
1) "2"
2) "2"
3) "2"
4) "3"
5) "4"
6) "3"
7) "1"
8) "4"
9) "4"
10) "2"
127.0.0.1:6379> spop set1
"2"
轉移存在的
127.0.0.1:6379> smove set1 set2 1
(integer) 1
轉移不存在的
127.0.0.1:6379> smove set1 set2 10
(integer) 0
用於組合和處理多個集合的命令,集合真正厲害的地方在組合和關聯多個集合。
命令用例
描述注意
sdiff
sdiff key [key …]
返回那些存在於第乙個集合但不存在於其他集合中的元素(數學上的差級運算)
sdiffstore
sdiffstore dest-key key [key …]
將sdiff的結果存到dest集合中
sinter
sinter key [key …]
返回多個集合的都有的元素(數學中的交集運算)
sinterstore
sinterstore dest-key key [key …]
將sinter的結果儲存到dest集合中
sunion
sunion key [key …]
返回多個集合中的所有元素(數學中的並集)
sunionstore
sunion dest-key key [key …]
將sunion的結果儲存到dest集合中
檢視兩個集合的元素
127.0.0.1:6379> smembers set
1) "1"
2) "3"
3) "4"
127.0.0.1:6379> smembers set2
1) "1"
sdiff的結果:只返回第乙個集合中有,但其他集合中沒有的元素
127.0.0.1:6379> sdiff set1 set2
1) "3"
2) "4"
127.0.0.1:6379> sdiff set2 set1
(empty list or set)
# set1 和set2 的差集
127.0.0.1:6379> sdiff set1 set2
1) "3"
2) "4"
# set3 中是空的
127.0.0.1:6379> smembers set3
(empty list or set)
# 執行sdiffstore,返回影響的元素數
127.0.0.1:6379> sdiffstore set3 set set2
(integer) 2
# set3 中成功新增了set1和set2的差集
127.0.0.1:6379> smembers set3
1) "3"
2) "4"
127.0.0.1:6379> smembers set1
1) "1"
2) "3"
3) "4"
127.0.0.1:6379> smembers set2
1) "1"
# set1 和set2 的交集
127.0.0.1:6379> sinter set1 set2
1) "1"
127.0.0.1:6379> smembers set4
(empty list or set)
127.0.0.1:6379> sinterstore set4 set set2
(integer) 1
127.0.0.1:6379> smembers set4
1) "1"
127.0.0.1:6379> sunion set1 set2
1) "1"
2) "3"
3) "4"
redis實戰 Redis命令之列表
列表的主要優點在於它可以包含多個字串值,使得使用者可以將資料集中在同乙個地方。redis允許使用者從序列的兩端推入或者彈出元素,獲取列表元素,以及執行各種常見的列表操作。命令用例 描述注意 rpush rpush key value value 從右端推入乙個或多個值 多個值用空格隔開 lpush ...
Redis 命令(十) 之 Redis 指令碼
redis 指令碼使用 lua 直譯器來執行指令碼。redis 2.6 版本通過內嵌支援 lua 環境。執行指令碼的常用命令為 eval。語法 eval 命令的基本語法如下 redis 127.0.0.1 6379 eval script numkeys key key arg arg 例項 以下例...
redis學習之redis命令(一)
redis命令用於在redis服務上執行操作。要在redis服務上執行命令需要乙個redis客戶端。redis客戶端在redis安裝包中。redis客戶端基本語法為 redis cli啟動客戶端,連線本地的redis服務 redis cli redis 127.0.0.1 6379 redis 12...