redis之sadd、srem、spop、sdiff、sdiffstore、sinter、 sinterstore、sunion、sunionstore、smove、scard、sismember
1.sadd
向名称为 key 的 set 中添加元素
redis 127.0.0.1:6379> sadd myset "hello"
(integer) 1
redis 127.0.0.1:6379> sadd myset "world"
(integer) 1
redis 127.0.0.1:6379> sadd myset "world"
(integer) 0
redis 127.0.0.1:6379> smembers myset
1) "world"
2) "hello"
redis 127.0.0.1:6379>
本例中,我们向 myset 中添加了三个元素,但由于第三个元素跟第二个元素是相同的,所以
第三个元素没有添加成功,最后我们用 smembers 来查看 myset 中的所有元素。
2.srem
删除名称为 key 的 set 中的元素 member
redis 127.0.0.1:6379> sadd myset2 "one"
(integer) 1
redis 127.0.0.1:6379> sadd myset2 "two"
(integer) 1
redis 127.0.0.1:6379> sadd myset2 "three"
(integer) 1
redis 127.0.0.1:6379> srem myset2 "one"
(integer) 1
redis 127.0.0.1:6379> srem myset2 "four"
(integer) 0
redis 127.0.0.1:6379> smembers myset2
1) "three"
2) "two"
redis 127.0.0.1:6379>
本例中,我们向 myset2 中添加了三个元素后,再调用 srem 来删除 one 和 four,但由于元素
中没有 four 所以,此条 srem 命令执行失败。
3.spop
随机返回并删除名称为 key 的 set 中一个元素
redis 127.0.0.1:6379> sadd myset3 "one"
(integer) 1
redis 127.0.0.1:6379> sadd myset3 "two"
(integer) 1
redis 127.0.0.1:6379> sadd myset3 "three"
(integer) 1
redis 127.0.0.1:6379> spop myset3
"three"
redis 127.0.0.1:6379> smembers myset3
1) "two"
2) "one"
redis 127.0.0.1:6379>
本例中,我们向 myset3 中添加了三个元素后,再调用 spop 来随机删除一个元素,可以看到
three 元素被删除了。
4.sdiff
返回所有给定 key 与第一个 key 的差集
redis 127.0.0.1:6379> smembers myset2
1) "three"
2) "two"
redis 127.0.0.1:6379> smembers myset3
1) "two"
2) "one"
redis 127.0.0.1:6379> sdiff myset2 myset3
1) "three"
redis 127.0.0.1:6379>
本例中,我们可以看到 myset2 中的元素与 myset3 中不同的只是 three,所以只有 three 被查
出来了,而不是 three 和 one,因为 one 是 myset3 的元素。
我们也可以将 myset2 和 myset3 换个顺序来看一下结果:
redis 127.0.0.1:6379> sdiff myset3 myset2
1) "one"
redis 127.0.0.1:6379>
这个结果中只显示了, myset3 中的元素与 myset2 中不同的元素。
5.sdiffstore
返回所有给定 key 与第一个 key 的差集,并将结果存为另一个 key
redis 127.0.0.1:6379> smembers myset2
1) "three"
2) "two"
redis 127.0.0.1:6379> smembers myset3
1) "two"
2) "one"
redis 127.0.0.1:6379> sdiffstore myset4 myset2 myset3
(integer) 1
redis 127.0.0.1:6379> smembers myset4
1) "three"
redis 127.0.0.1:6379>
6.sinter
返回所有给定 key 的交集
redis 127.0.0.1:6379> smembers myset2
1) "three"
2) "two"
redis 127.0.0.1:6379> smembers myset3
1) "two"
2) "one"
redis 127.0.0.1:6379> sinter myset2 myset3
1) "two"
redis 127.0.0.1:6379>
通过本例的结果可以看出, myset2 和 myset3 的交集 two 被查出来了
7.sinterstore
返回所有给定 key 的交集,并将结果存为另一个 key
redis 127.0.0.1:6379> smembers myset2
1) "three"
2) "two"
redis 127.0.0.1:6379> smembers myset3
1) "two"
2) "one"
redis 127.0.0.1:6379> sinterstore myset5 myset2 myset3
(integer) 1
redis 127.0.0.1:6379> smembers myset5
1) "two"
redis 127.0.0.1:6379>
通过本例的结果可以看出, myset2 和 myset3 的交集被保存到 myset5 中了
8.sunion
返回所有给定 key 的并集
redis 127.0.0.1:6379> smembers myset2
1) "three"
2) "two"
redis 127.0.0.1:6379> smembers myset3
1) "two"
2) "one"
redis 127.0.0.1:6379> sunion myset2 myset3
1) "three"
2) "one"
3) "two"
redis 127.0.0.1:6379>
通过本例的结果可以看出, myset2 和 myset3 的并集被查出来了
9.sunionstore
返回所有给定 key 的并集,并将结果存为另一个 key
redis 127.0.0.1:6379> smembers myset2
1) "three"
2) "two"
redis 127.0.0.1:6379> smembers myset3
1) "two"
2) "one"
redis 127.0.0.1:6379> sunionstore myset6 myset2 myset3
(integer) 3
redis 127.0.0.1:6379> smembers myset6
1) "three"
2) "one"
3) "two"
redis 127.0.0.1:6379>
通过本例的结果可以看出, myset2 和 myset3 的并集被保存到 myset6 中了
10、smove
从第一个 key 对应的 set 中移除 member 并添加到第二个对应 set 中
redis 127.0.0.1:6379> smembers myset2
1) "three"
2) "two"
redis 127.0.0.1:6379> smembers myset3
1) "two"
2) "one"
redis 127.0.0.1:6379> smove myset2 myset7 three
(integer) 1
redis 127.0.0.1:6379> smembers myset7
1) "three"
redis 127.0.0.1:6379>
通过本例可以看到, myset2 的 three 被移到 myset7 中了
11.scard
返回名称为 key 的 set 的元素个数
redis 127.0.0.1:6379> scard myset2
(integer) 1
redis 127.0.0.1:6379>
通过本例可以看到, myset2 的成员数量为 1
12.sismember
测试 member 是否是名称为 key 的 set 的元素
redis 127.0.0.1:6379> smembers myset2
1) "two"
redis 127.0.0.1:6379> sismember myset2 two
(integer) 1
redis 127.0.0.1:6379> sismember myset2 one
(integer) 0
redis 127.0.0.1:6379>
通过本例可以看到, two 是 myset2 的成员,而 one 不是。
13.srandmember
随机返回名称为 key 的 set 的一个元素,但是不删除元素
redis 127.0.0.1:6379> smembers myset3
1) "two"
2) "one"
redis 127.0.0.1:6379> srandmember myset3
"two"
redis 127.0.0.1:6379> srandmember myset3
"one"
redis 127.0.0.1:6379>
推荐电影泰山归来gravetee.com
redis之sadd、srem、spop、sdiff、sdiffstore、sinter、 sinterstore、sunion、sunionstore、smove、scard、sismember相关推荐
- Redis学习之srem命令
目录 srem命令 语法 返回值 例子 srem命令 Redis srem,命令用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略.当 key 不是集合类型,返回一个错误. 语法 srem ...
- java redis sadd_Redis Sadd 命令
Redis Sadd 命令 - 向集合添加一个或多个成员 Redis Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略. 假如集合 key 不存在,则创建一个只包含添加 ...
- java redis srem_Java Jedis.srem方法代碼示例
import redis.clients.jedis.Jedis; //導入方法依賴的package包/類 @EventHandler(priority = EventPriority.LOWEST) ...
- 详细的redis操作介绍
NoSQL介绍 Nosql = not onlysql, 09年发展高涨,指非关系型数据库,在超大规模和高并发的sns类网站有优势: Nosql是以key-value形式存储,和传统的数据库不一样:不 ...
- Redis基础知识巩固
一.Redis简介 1)关于NoSQL NoSQL的全称是Not only SQL,在过去的几年中,NoSQL数据库一度成为高并发.海量数据存储解决方案的代名词,与之相应的产品也呈现出雨后春笋般的生机 ...
- Redis 命令参考
Redis 命令参考 本文档是 Redis Command Reference 和 Redis Documentation 的中文翻译版, 阅读这个文档可以帮助你了解 Redis 命令的具体使用方法, ...
- phpredis中文手册——《redis中文手册》 php版
redis中文手册:http://readthedocs.org/docs/redis/en/latest/ 本文是参考<redis中文手册>,将示例代码用php来实现,注意php-red ...
- lindex.php,Redis学习笔记:命令
目录字符串APPEND BITCOUNT BITOP DECR DECRBY GET GETBIT GETRANGE INCR INCRBY INCRBYFLOAT SET SETBIT SETNX ...
- Redis 数据库入门教程
From:http://www.jb51.net/article/56448.htm Redis 菜鸟教程:http://www.runoob.com/redis/redis-tutorial.htm ...
最新文章
- PyAlgoTrade Hello World 第一个程序(一)
- JDBC批处理读取指定Excel中数据到Mysql关系型数据库
- 共建网络安全堤坝,守住网络安全底线
- mysql删除重复的判断_MySQL中查询、删除重复记录一共有多少种方法?
- tf.clip_by_value
- NServiceBus教程-消息传递与处理
- 复现经典:《统计学习方法》第 6 章 逻辑斯谛回归
- 这是啥?也太秀了吧?
- EfficientDet目标检测谷歌官方终于开源了!
- git创建一个自己的本地仓库
- VB获取Windows操作系统所有版本
- Centos6.5 邮件服务
- 16. 页框回收 2010-02-28 22:56 591人阅读 评论(0) 收藏...
- 用户故事与敏捷方法—发布计划
- EPICS Archiver Appliance在Debian11下安装文档
- java openoffic linux_Linux下安装OpenOffice
- Win10系统下CMD命令提示符输入ipconfig命令无法使用的解决方法
- 【Python】图片视频处理常用操作及方法
- 网站备案 服务器不在一个地方,域名和服务器不在一个 如何备案
- 仿京东收货地址三级联动
热门文章
- 趣味选择题.html
- Unity3D疫情传播模拟器完整代码
- 微信支付官方揭开刷脸支付神秘面纱
- [SHOI2008]仙人掌图
- vue2+element使用插件导出全部表格数据
- UCML页面生成后突然不能访问 参数化查询 '(@ActivityID nvarchar(4000))SELECT ActivityInfoEx.ActivityInfoEx' 需要参数 '@Acti
- 免费图片转pdf的方法?学会图片转pdf很重要
- 怎样在Win7桌面上显示“我的电脑”
- 性能测试监控——CPU
- 五款最优秀的java微服务框架