0.3、Redis学习-集合类型及主要命令行

前言

体能状态先于精神状态,习惯先于决心,聚焦先于喜好。

Redis 官方完整的命令行文档

https://redis.io/commands

本文实验 Redis 版本为3.2.100

在Redis 2.6版本及之前,有些命令是不被支持的,建议读者安装2.6之后的版本。
命令行中 key 表示 key的name,在实际使用中对应 key的名字。
[] 表示被其包括的命令可有可无。
命令行中 value 存储的值 。
对于增、减操作,key不存在于 Redis 时,默认创建一个value为 0 的 key。
append 命令,key不存在于 Redis 时,默认创建一个空串。
Redis 计数默认从左开始,以0为基数。
Redis 命令行中空为 (nil)
弹出:即从列表中返回该元素,并从列表中删除该元素
使用的集合不存在会被认为是一个空集合

Redis 集合类型简介

Redis 集合是无序的
Redis 集合无法区分存储两个相同的元素
Redis 支持对两个集合执行移动操作
Redis支持对多个集合执行 交集运算、并集运算和差集运算
集合可以认为是一般数据结构的 set

常用命令行

基本操作
SADD key item [···] 向集合添加一(多)个元素

如果元素已经存在于集合,并不会被再次添加
返回值为新加入集合的元素总数

127.0.0.1:6379> sadd set1 100 200 100
(integer) 2
SREM key item [···] 移除集合中一(多)个元素

只有元素存在于集合中才可被移除
返回被移除元素的个数

127.0.0.1:6379> srem set1 300 100
(integer) 1
SISMEMBER key item 检查元素是否存在于集合

存在返回1
不存在返回0

127.0.0.1:6379> sismember set1 300
(integer) 0
127.0.0.1:6379> sismember set1 200
(integer) 1
SCARD key 返回集合元素的总数
127.0.0.1:6379> scard set1
(integer) 1
SMEMBERS key 返回集合中的所有元素

注意是无序的哦

127.0.0.1:6379> sadd set1 100 300 400
(integer) 3
127.0.0.1:6379> smembers set1
1) "100"
2) "200"
3) "300"
4) "400"
SRANDMEMBER key [count] 随机返回1个或|count|个元素

当count为正数,返回元素不会重复
当count为负数,返回元素可能重复

127.0.0.1:6379> smembers set1
1) "100"
2) "200"
3) "300"
4) "400"
127.0.0.1:6379> srandmember set1
"200"
127.0.0.1:6379> srandmember set1 3
1) "200"
2) "300"
3) "100"
127.0.0.1:6379> srandmember set1 -3
1) "200"
2) "300"
3) "200"
SPOP key [count] 随机移除一(count)个元素并返回

默认是一个
指定count就是count个
返回被移除的元素

127.0.0.1:6379> spop set1 2
1) "200"
2) "100"
在多个集合间操作

准备三个集合新 seta、setb、setc

127.0.0.1:6379> sadd seta 100 200 300
(integer) 3
127.0.0.1:6379> sadd setb 200 300 400
(integer) 3
127.0.0.1:6379> sadd setc 300 400 500
(integer) 3
SMOVE source-key dest-key item 将源集合指定元素剪切到目标集合

如果源集合不存在指定元素则操作失败
如果源集合存在指定元素,则将之从源集合删除,并添加到目标集合
操作成功返回1,否则返回0

127.0.0.1:6379> smembers seta
1) "100"
2) "200"
3) "300"
127.0.0.1:6379> smove seta setb 100
(integer) 1
127.0.0.1:6379> smembers seta
1) "200"
2) "300"
SDIFF key1 [key2 ···] 多集合差集运算

返回存在于 key1集合,但是不存在于 key2、key3等集合的元素
没有的话返回空

127.0.0.1:6379> sdiff seta setb setc
(empty list or set)
127.0.0.1:6379> sdiff setc setb
1) "500"
SDIFFSTORE dest-key key1 [key2 ···] 多集合差集运算并保存结果到指定集合

将存在于 key1集合,但是不存在于 key2、key3等集合的元素保存到指定集合 dest-key
返回值为结果集合的总数
结果集合不存在会自动创建

127.0.0.1:6379> sdiffstore setd setc setb
(integer) 1
127.0.0.1:6379> smembers setd
1) "500"
SINTER key1 [key2···] 多集合交集运算

返回同时存在于多个集合中的元素
没有交集返回空

127.0.0.1:6379> sinter seta setb
1) "200"
2) "300"

127.0.0.1:6379> sinter setf sete
(empty list or set)
SINTERSTORE dest-key key1 [key2···] 多集合交集运算并保存结果到指定集合

将同时存在多个集合的元素保存到指定集合 dest-key
返回保存元素的个数

127.0.0.1:6379> sinterstore setdest seta setb
(integer) 2

127.0.0.1:6379> smembers setdest
1) "200"
2) "300"
SUNION key1 [key2···] 多集合并集运算

返回多个集合中至少出现一次的元素

127.0.0.1:6379> sunion seta setb
1) "100"
2) "200"
3) "300"
4) "400"
SUNIONSTORE dest-key key1 [key2···] 多集合并集运算并保存结果到指定集合

将多个集合中至少出现一次的元素保存到指定集合 dest-key
返回保存到集合中的元素个数

127.0.0.1:6379> sunionstore setu seta setb
(integer) 4

猜你喜欢

转载自blog.csdn.net/bestcxx/article/details/91943520