Redis中set集合(无序)操作命令
set集合(无序)
set
是一个无序的不重复元素的集合
增
sadd
往集合内部添加元素
127.0.0.1:6379> sadd set1 a b c d
(integer) 4
127.0.0.1:6379> smembers set1
1) "d"
2) "a"
3) "b"
4) "c"
127.0.0.1:6379>
如果指定的
key
不存在会创建
删
srem
移除元素
127.0.0.1:6379> srem set1 c
(integer) 1
127.0.0.1:6379> smembers set1
1) "d"
2) "a"
3) "b"
127.0.0.1:6379>
如果要移除的元素不存在,则返回
0
可以同时移出多个
spop
随机弹出一个元素
127.0.0.1:6379> spop set1
"d"
127.0.0.1:6379> smembers set1
1) "a"
2) "b"
127.0.0.1:6379>
改
因为set
是无序的,如果要修改某个元素的值,直接将它删除在添加一个新的即可,修改真正的意义是替换,可是
在set
没有位置的概念(无序),替换就成了毫无意义的事情
查
scard
scard key
返回set
中的元素的个数
如果查询一个不存在的
key
,返回0
smembers
smembers key
返回集合中所有的元素
sismember
sismember key value
查询value
是否存在于key
,存在返回1,否则返回0
srandmember
srandmember key [count]
随机返回count
个集合中元素,注意count
不能大于集合内部元素数
127.0.0.1:6379> srandmember set2
"3"
127.0.0.1:6379> srandmember set2 3
1) "96"
2) "2"
3) "5"
交集
sinter
sinter key1 key2 ....
返回key1
和key2
或更多key
中的交集(相同元素)
127.0.0.1:6379> sadd set1 1 2 3 45 6
(integer) 5
127.0.0.1:6379> sadd set2 8 5 2 96 3
(integer) 5
127.0.0.1:6379> sinter set1 set2
1) "2"
2) "3"
sinterstore
sinterstore newkey key1 key2 ...
将key1
和key2
或更多key
的交集合并到新的集合newkey
中
127.0.0.1:6379> sinterstore set3 set1 set2
(integer) 2
127.0.0.1:6379> smembers set3
1) "2"
2) "3"
并集
sunion
sunion key1 key2 ...
将所有的key
的元素合并返回,重复的值将只保留一个
127.0.0.1:6379> sunion set1 set2
1) "45"
2) "a"
3) "b"
4) "2"
5) "5"
6) "1"
7) "3"
8) "96"
9) "8"
10) "6"
sunionstore
sunionstore newkey key1 key2....
和sinterstore
类型,将并集移到newkey
中
差集
sdiff
sdiff key1 key2 ...
返回所有key
的差集
sdiffstore
sdiffstore newkey key1 key2 ...
将所有key
的差集移入newkey
移动
smove
smove key1 key2 value
将value
从key1
中移动到key2
Redis中set集合(无序)操作命令的更多相关文章
- [日常] Redis中set集合的使用思考
公司部门同事有个需求,就是需要把当前另一个部门a中存储的数据全部导出来,自己当前业务b的数据全部导出来,两个要取一下差集,把a中存在,b中不存在的记下来,要去调用某接口把对应的文件删除.这个我感觉可以 ...
- 面试官:Redis中有序集合的内部实现方式是什么?
面试官:Redis中基本的数据类型有哪些? 我:Redis的基本数据类型有:字符串(string).哈希(hash).列表(list).集合(set).有序集合(zset). 面试官:有序集合的内部实 ...
- Redis系列之key操作命令与Redis中的事务详解(六)
序言 本篇主要目的有二: 1.展示所有数据类型中key的所有操作命令,以供大家学习,查阅,更深入的挖掘redis潜力. 2.掌握redis中的事务,让你的数据完整性一致性拥有更优的保障. redis命 ...
- 面试官:Redis中集合数据类型的内部实现方式是什么?
虽然已经是阳春三月,但骑着共享单车骑了这么远,还有有点冷的.我搓了搓的被冻的麻木的手,对着前台的小姐姐说:"您好,我是来面试的."小姐姐问:"您好,您叫什么名字?&quo ...
- Redis 中的数据类型及基本操作
Redis 内置的数据类型有 5种:字符串String.哈希Hash.列表List.集合Set.有序集合ZSet 字符串类型 String 是 Redis 中最基本的类型,一个 key 对应着一个 v ...
- java中避免集合死链调用
目录 1. 前言 2. 场景 3. 环境 3.1 开发环境准备 3.2 数据准备 3.2.1 Mysql数据库表及数据 3.2.2 redis库数据 4. 解决方式 5.完整代码 5.1Model 5 ...
- redis中各种数据类型对应的jedis操作命令
redis中各种数据类型对应的jedis操作命令 一.常用数据类型简介: redis常用五种数据类型:string,hash,list,set,zset(sorted set). 1.String类型 ...
- 5、Redis中对Set类型的操作命令
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ------------ ...
- Redis中7种集合类型应用场景
StringsStrings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字.使用Strings类型,你可以完全实现目前 Memcached 的功能,并且效率更 ...
随机推荐
- openstack nova 手动修改虚拟机状态
source admin-openrc.sh nova list nova reset-state <id> --active
- linux 解压与压缩
转http://www.cnblogs.com/eoiioe/archive/2008/09/20/1294681.html .tar 解包:tar xvf FileName.tar打包:tar cv ...
- DAO层,Service层,Controller层、View层、entity层
1.DAO(mapper)层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就 ...
- el-table表头v-for循环遇到的问题
这两天在项目中遇到了el-table表头需要动态变化,也就是点击不同的标签显示对应的表格,主要表头都不一样,那么表格也就是动态的,表头也需要循环 一开始以为很简单 <el-table ...
- Codeforces Round #669 (Div. 2)/Codeforces1407 ABCD
A. Ahahahahahahahaha 通过作者半个小时的观察:全零和全一必定有一个是符合要求的答案,因为0的个数和1的个数至少有一个大于等于\(\frac{n}{2}\). B. Big Vova ...
- Agumaster添加股票日交易爬虫画面
- 如何解决SpringBoot工程中的错误:java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required
出错原因:MySQL依赖及MySQL驱动包高于在使用的MySQL数据库版本. 比如,我本地数据库版本是:Server version: 5.2.3-falcon-alpha-community-nt ...
- 深入理解Java中的装箱与拆箱
一.Java数据类型 1.在说装箱与拆箱之前,先说一下Java的基本数据类型,Java从数据类型上可以划分为值类型与引用类型,值类型是四类八种,分别是: 整数型:byte̵,short̵,int̵,l ...
- Java审计之SQL注入篇
Java审计之SQL注入篇 0x00 前言 本篇文章作为Java Web 审计的一个入门文,也是我的第一篇审计文,后面打算更新一个小系列,来记录一下我的审计学习的成长. 0x01 JDBC 注入分析 ...
- docker导出导入镜像docker save和docker load的用法
1.百度搜的第一步是先将容器提交为镜像,然后用你提交的镜像去做上面的备份操作,提交为镜像后会新增一个镜像,但是感觉没有必要,直接做上面的save操作也是可以用的 百度的:docker commit 容 ...