Redis数据库的安装和使用(五)-集合相关指令
2019-01-07 18:51
183 查看
Redis数据库部分命令
集合相关指令
关键字 | 用法 | 指令作用 |
---|---|---|
sadd | sadd key value [value…] | 将一个或多个value添加到集合set中 |
scard | scard key | 返回集合set中元素的数量 |
sdiff | sdiff key [key…] | 返回给定第一个集合与后面所有集合的差集 |
sdiffstore | sdiffstore set key [key…] | 将给定第一个集合key与后面所有集合的差集返回并保存至集合set中 |
sinter | sinter key [key…] | 返回给定一个集合与后面所有集合的交集 |
sinterstore | sinterstore set key [key…] | 将给定第一个集合key与后面所有集合的交集返回并保存到集合set中 |
sismember | sismember key value | 判断并返回值value是否是集合key中的元素 |
smembers | smembers key | 返回集合中所有的元素 |
smove | smove key set value | 将集合key中的值为value的元素移至集合set中 |
spop | spop key | 从集合key中随机移除且返回一个元素 |
srandmember | srandmember key [count] | 按照count的数值进行返回集合key中的元素 |
srem | srem key value [value…] | 移除集合key中一个或多个指定元素 |
sunion | sunion key [key…] | 返回给定第一个集合与后面所有集合的并集 |
sunionstore | sunionstore set key [key…] | 将给定第一个集合key与后面所有集合的并集返回并保存到集合set中 |
sadd
语法:
sadd key value [value ...]
作用:
当集合key存在且有值时,直接将一个或value添加到key中; 当key不存在时,会先创建一个集合,并将一个或多个value值添加到key中; 当key是集合以外的类型时,会报错。
示例:
# 当key不存在时: 127.0.0.1:6379> sadd set1 a b c (integer) 3 # 当集合key存在时: 127.0.0.1:6379> sadd set1 1 2 3 (integer) 3 # 当key不是集合类型时: 127.0.0.1:6379> set key1 1 OK 127.0.0.1:6379> sadd key1 a (error) WRONGTYPE Operation against a key holding the wrong kind of value
scard
语法:
scard key
作用:
当集合key存在且有值时,返回set中元素的数量; 当key不存在但不是集合以外类型时,返回0; 当key是集合以外类型时,会报错。
示例:
# 当集合key存在且有值时: 127.0.0.1:6379> scard set1 (integer) 6 # 当key不存在但不是集合以外类型时: 127.0.0.1:6379> scard set2 (integer) 0 # 当key是集合以外类型时: 127.0.0.1:6379> scard key1 (error) WRONGTYPE Operation against a key holding the wrong kind of value
sdiff
语法:
sdiff key [key ...]
作用:
当集合key只有一个时,则是返回key中所有的元素; 当集合key存在且有值时,返回给定第一个集合与后面所有集合的差集; 当其中部分集合不存在或没有值时,会视为空集,不会对其他集合产生影响; 当其中有非集合以外类型时,会报错。
示例:
# 当集合key只有一个时: 127.0.0.1:6379> sdiff set1 1) "b" 2) "a" 127.0.0.1:6379> sdiff set2 1) "1" 2) "2" 3) "a" # 当集合key存在且有值时: 127.0.0.1:6379> sdiff set2 set1 1) "1" 2) "2" 127.0.0.1:6379> sdiff set1 set2 1) "b" # 当集合中有空集: 127.0.0.1:6379> sdiff set2 set1 set3 1) "1" 2) "2" # 当其中有非集合的key时: 127.0.0.1:6379> sdiff set2 set1 key1 (error) WRONGTYPE Operation against a key holding the wrong kind of value
sdiffstore
语法:
sdiffstore set key [key ...]
作用:
该指令和sdiff指令作用类似,但是最终的返回值将保存至集合set中; 当集合set不存在时,会创建新的集合; 当集合set存在时,会覆盖集合之前的值; 其他的注意与sdiff一致。
示例:
# 当集合key只有一个时: 127.0.0.1:6379> sdiffstore sets set1 (integer) 2 127.0.0.1:6379> smembers sets 1) "b" 2) "a" # 当集合key存在且有值时: 127.0.0.1:6379> sdiffstore sets set2 set1 (integer) 2 127.0.0.1:6379> smembers sets 1) "1" 2) "2"
sinter
语法:
sinter key [key ...]
作用:
当集合key存在且有值时,返回给定第一个集合以后面所有集合的交集; 当key为空且不为集合以外类型时,key视为空集合,结果也会变为空集;(与sdiff完全不一样的地方) 当key中有集合以外类型时,会报错。
示例:
# 当集合key存在且有值时: 127.0.0.1:6379> smembers set1 1) "b" 2) "a" 127.0.0.1:6379> smembers set2 1) "1" 2) "2" 3) "a" 127.0.0.1:6379> sinter set2 set1 1) "a" # 当集合key只有一个且有值时: 127.0.0.1:6379> sinter set1 1) "b" 2) "a" # 当集合key中有空集时: 127.0.0.1:6379> sinter set2 set1 set3 (empty list or set) # 当key中有集合以外类型时: 127.0.0.1:6379> sinter set2 set1 key1 (error) WRONGTYPE Operation against a key holding the wrong kind of value
sinterstore
语法:
sinterstore set key [key ...]
作用:
该指令和sinter指令作用类似,但是最终的返回值将保存至集合set中; 当集合set不存在时,会创建新的集合并且存值; 当集合set存在且有值时,会覆盖之前的值; 其他的注意与sinter一致。
示例:
# 当集合key存在且有值时: 127.0.0.1:6379> sinterstore sets set2 set1 (integer) 1 127.0.0.1:6379> smembers sets 1) "a" # 当集合key只有一个切有值时: 127.0.0.1:6379> sinterstore sets set2 (integer) 3 127.0.0.1:6379> smembers sets 1) "1" 2) "2" 3) "a"
sismember
语法:
sismember key value
作用:
判断值value是否是集合key中的元素,返回判断后的布尔值(0或1); 当key不存在且不是集合以外类型时,会返回0; 当key是集合以外类型时,会报错。
示例:
# 当集合key存在且有值时: 127.0.0.1:6379> smembers set2 1) "1" 2) "2" 3) "a" 127.0.0.1:6379> sismember set2 111 (integer) 0 127.0.0.1:6379> sismember set2 1 (integer) 1 # 当key没有值且不是集合以外类型时: 127.0.0.1:6379> sismember set3 1 (integer) 0 # 当key是集合以外类型时: 127.0.0.1:6379> sismember key1 1 (error) WRONGTYPE Operation against a key holding the wrong kind of value
smembers
语法:
smembers key
作用:
当集合key存在且有值时,返回集合key中所有的元素; 当key为空单不是集合以外类型时,返回空集; 当key是集合以外类型时,会报错。
示例:
# 当集合key存在且有值时: 127.0.0.1:6379> smembers set1 1) "b" 2) "a" # 当key为空且不是集合以外类型时: 127.0.0.1:6379> smembers set3 (empty list or set) # 当key为集合以外类型时: 127.0.0.1:6379> smembers key1 (error) WRONGTYPE Operation against a key holding the wrong kind of value
smove
语法:
smove key set value
作用:
当集合key存在且value为其中元素时: 如果集合set存在,直接将value移至集合set中; 如果set不存在,则会创建集合set,并将value移至set中; 如果集合key不存在或者value不在key中时,返回0,且不会对set进行操作; 如果key为集合以外类型时,会报错。
示例:
# 当key存在且value为其中元素时: 127.0.0.1:6379> smembers set1 1) "b" 2) "a" 127.0.0.1:6379> smembers sets (empty list or set) 127.0.0.1:6379> smove set1 sets a (integer) 1 # set不存在时 127.0.0.1:6379> smembers set1 1) "b" 127.0.0.1:6379> smembers sets 1) "a" 127.0.0.1:6379> smove set1 sets b (integer) 1 # 集合set存在且有值时 127.0.0.1:6379> smembers set1 (empty list or set) 127.0.0.1:6379> smembers sets 1) "b" 2) "a" # 当key不存在且不是集合以外类型时: 127.0.0.1:6379> smove set1 sets b (integer) # 当key为集合以外类型时: 127.0.0.1:6379> smove key1 sets a (error) WRONGTYPE Operation against a key holding the wrong kind of value
spop
语法:
spop key
作用:
当集合key存在且有值时,会随机从集合key中移除且返回一个元素; 当key为空时,返回nil。
示例:
# 当集合key存在且有值时: 127.0.0.1:6379> smembers set1 1) "b" 2) "a" 127.0.0.1:6379> spop set1 "a" 127.0.0.1:6379> smembers set1 1) "b" # 当key不存在时: 127.0.0.1:6379> smembers set1 (empty list or set) 127.0.0.1:6379> spop set1 (nil)
srandmember
语法:
srandmember key [count]
作用:
当集合key存在且有值时: 如果没有count值时,直接随机返回一个集合key中的元素; 如果给定count的值为正数时: 当count大于集合key中元素个数,则将整个集合key返回; 当count小于集合key中元素个数,则返回一个count个元素的数组,数组中的元素为集合key中的随机元素(不重复); 如果给定count的值为负数时: 不管count的绝对值大于还是小于集合key中元素的个数,都会返回一个元素个数为count的绝对值的数组,其中的每一个元素都是从集合key中随机出来的(可能会重复); 如果key不存在,则返回nil。
示例:
# 创建集合key,其中元素为a、b、c、1、2、3: 127.0.0.1:6379> sadd sets a b c 1 2 3 (integer) 6 # 当count为正数且小于key中元素个数时: 127.0.0.1:6379> srandmember sets 3 1) "c" 2) "b" 3) "3" # 当count为正数且大于key中元素个数时: 127.0.0.1:6379> srandmember sets 7 1) "b" 2) "c" 3) "a" 4) "1" 5) "2" 6) "3" # 当count为负数且绝对值小于key中元素个数时: 127.0.0.1:6379> srandmember sets -3 1) "c" 2) "a" 3) "a" # 可能会有重复 # 当count为负数且绝对值大于key中元素个数时: 127.0.0.1:6379> srandmember sets -7 1) "2" 2) "3" 3) "a" 4) "b" 5) "a" 6) "2" 7) "b" # 肯定会有重复 # 当key不存在时: 127.0.0.1:6379> srandmember set4 (nil)
srem
语法:
srem key value [value ...]
作用:
当集合key存在且有值时,按照后面给的value进行移除,如果value对应的值不在集合key中,则不会进行操作,最终返回真正移除的元素个数; 当key不存在且不是非集合类型时,直接返回0; 当key为非集合类型时,会报错。
示例:
# 当集合key存在且有值时: 127.0.0.1:6379> smembers sets 1) "1" 2) "b" 3) "c" 4) "a" 5) "2" 6) "3" 127.0.0.1:6379> srem sets 1 2 8 (integer) 2 # value中有对应的值不在key中 127.0.0.1:6379> smembers sets 1) "b" 2) "c" 3) "a" 4) "3" # 当key不存在且不是非集合类型时: 127.0.0.1:6379> srem set5 1 (integer) 0 # 当key为非集合类型时: 127.0.0.1:6379> srem key1 1 (error) WRONGTYPE Operation against a key holding the wrong kind of value
sunion
语法:
sunion key [key ...]
作用:
当集合key都存在且有值时,返回第一个集合与后面所有集合的并集; 如果其中有的key不存在,则视为空集,不影响结果;
示例:
# 当集合key都存在且有值时: 127.0.0.1:6379> sunion set1 set2 1) "1" 2) "2" 3) "a" # 当给定集合有不存在的时: 127.0.0.1:6379> sunion set1 set2 set111 1) "1" 2) "2" 3 20000 ) "a"
sunionstore
语法:
sunionstore set key [key ...]
作用:
该指令与sunion指令作用相似,但是会将最终的结果保存到集合set中; 如果set不存在,则会先创建新的集合,再保存值; 如果集合set存在且有值,则会覆盖之前的值;
示例:
# 当集合key都存在且有值: 127.0.0.1:6379> sunionstore sets set1 set2 (integer) 3 127.0.0.1:6379> smembers sets 1) "1" 2) "2" 3) "a"
相关文章推荐
- Linun下安装Redis数据库使用
- Linux系统 Redis数据库安装与部署使用
- Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)
- Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)
- Redis数据库安装配置使用
- win7x64下的redis安装与使用(非关系型数据库)
- 基于C#的MongoDB数据库开发应用(4)--Redis的安装及使用
- 一:redis的安装与key相关指令的介绍
- 同时安装oracle9 i,10 g 控制台 cmd,exp指令使用数据库版本切换,plsql数据库版本切换,
- 基于C#的MongoDB数据库开发应用(4)--Redis的安装及使用
- Redis 数据库安装及使用方法
- linux下安装redis的相关问题及java中使用redis
- NoSQL数据库redis安装使用
- Redis的安装和使用之一 -----Redis相关运用
- Redis的安装和使用之一 -----Redis相关运用
- 配置好derby的环境变量后怎么在eclipse中使用derby插件来操作和管理相关的derby数据库
- 关于loadrunner安装使用相关
- Windows上安装Redis数据库
- Redis 安装使用(二) PHP-redis中文文档
- 不安装 oracle的客户,就可以使用pl/sql访问远程oracle 数据库的方法