5、Redis中对Set类型的操作命令

Wesley13
• 阅读 495

写在前面的话:读书破万卷,编码如有神

--------------------------------------------------------------------

5、Redis中对Set类型的操作命令

--------------------------------------------------------------------

1、对Set类型的操作命令

1.1、sadd:添加元素,格式是:sadd set的key item的项值,item项可以有多个。

操作如下:

5、Redis中对Set类型的操作命令

java示例代码:

 1 import redis.clients.jedis.Jedis;
 2 
 3 /**
 4  * redis中对于set类型的: sadd 操作示例
 5  * sadd:添加元素,格式是:sadd set的key item的项值,item项可以有多个。
 6  */
 7 public class Set_sadd_operation {
 8     public static void main(String[] args) {
 9         Jedis jedis = new Jedis("127.0.0.1",6379);
10 
11         /**
12          * 示例1: 相当于执行 sadd k1 v1
13          */
14         Long myset = jedis.sadd("myset", "1");
15         System.out.println("myset = " + myset);
16 
17         /**
18          * 示例2: 相当于执行 sadd k1 v1 v2 v3 v4
19          */
20         Long myset1 = jedis.sadd("myset", "1", "2", "3", "4");
21         System.out.println("myset1 = " + myset1);
22     }
23 }

1.2、smembers:获取集合中所有元素,格式是:smembers set的key

操作如下:

5、Redis中对Set类型的操作命令

java示例代码:

 1 import redis.clients.jedis.Jedis;
 2 
 3 import java.util.Set;
 4 
 5 /**
 6  * redis中对于set类型的: smembers 操作示例
 7  * smembers:获取集合中所有元素,格式是:smembers set的key
 8  */
 9 public class Set_smembers_operation {
10     public static void main(String[] args) {
11         Jedis jedis = new Jedis("127.0.0.1",6379);
12         /**
13          * 示例1: 相当于执行 smembers key
14          */
15         Set<String> myset = jedis.smembers("myset");
16         System.out.println("myset = " + myset);
17     }
18 }

1.3、sismember:判断元素是否在集合中,格式是:sismember set的key item的项值

操作如下:

5、Redis中对Set类型的操作命令

java示例代码:

 1 import redis.clients.jedis.Jedis;
 2 
 3 /**
 4  * redis中对于set类型的: sismember 操作示例
 5  * sismember:判断元素是否在集合中,格式是:sismember set的key item的项值
 6  */
 7 public class Set_sismember_operation {
 8 
 9     public static void main(String[] args) {
10         Jedis jedis = new Jedis("127.0.0.1",6379);
11         /**
12          * 示例1: 相当于执行 sismember myset 1
13          */
14         Boolean sismember = jedis.sismember("myset", "1");
15         System.out.println("sismember = " + sismember);
16 
17 
18         /**
19          * 示例2: 相当于执行 sismember myset 11
20          */
21         Boolean sismember1 = jedis.sismember("myset", "11");
22         System.out.println("sismember1 = " + sismember1);
23     }
24 }

1.4、srem:删除元素,格式是:srem set的key item项的值

操作如下:

5、Redis中对Set类型的操作命令

java示例代码:

 1 import redis.clients.jedis.Jedis;
 2 
 3 /**
 4  * redis中对于set类型的:
 5  *  srem:删除元素,格式是:srem set的key item项的值
 6  */
 7 public class Set_srem_operation {
 8     public static void main(String[] args) {
 9         Jedis jedis = new Jedis("127.0.0.1",6379);
10         /**
11          * 示例1: 相当于执行 srem myset 1
12          */
13         Long myset = jedis.srem("myset", "1");
14         System.out.println("myset = " + myset);
15 
16         /**
17          * 示例2: 相当于执行 srem myset 11
18          */
19         Long myset1 = jedis.srem("myset", "11");
20         System.out.println("myset1 = " + myset1);
21     }
22 }

 1.5、scard:获取集合中元素的个数,格式是:scard set的key

操作如下:

5、Redis中对Set类型的操作命令

java示例代码:

 1 import redis.clients.jedis.Jedis;
 2 
 3 /**
 4  * redis中对于set类型的:
 5  * scard:获取集合中元素的个数,格式是:scard set的key
 6  */
 7 public class Set_scard_operation {
 8     public static void main(String[] args) {
 9         Jedis jedis = new Jedis("127.0.0.1",6379);
10 
11         /**
12          * 示例1: 相当于执行 scard myset
13          */
14         Long myset = jedis.scard("myset");
15         System.out.println("myset = " + myset);
16     }
17 }

 1.6、srandmember:随机获取集合中的元素,格式是:srandmember set的key[数量]。(数量为正数时,会随机获取这么多个不重复的元素;如果数量大于集合元素个数,返回全部;如果数量为负,会随机获取这么多个元素,可能有重复。)

操作如下:

5、Redis中对Set类型的操作命令

java示例代码:

 1 import redis.clients.jedis.Jedis;
 2 
 3 import java.util.List;
 4 import java.util.Set;
 5 
 6 /**
 7  * redis中对于set类型的:
 8  * srandmember:随机获取集合中的元素,格式是:srandmember set的key[数量]。
 9  * (数量为正数时,会随机获取这么多个不重复的元素;如果数量大于集合元素个数,返回全部;如果数量为负,会随机获取这么多个元素,可能有重复。)
10  */
11 public class Set_srandmember_operation {
12     public static void main(String[] args) {
13         Jedis jedis = new Jedis("127.0.0.1",6379);
14 
15         Set<String> myset = jedis.smembers("myset");
16         System.out.println("myset = " + myset);
17 
18         /**
19          * 示例1: 相当于执行 srandmember myset 5
20          */
21         List<String> myset1 = jedis.srandmember("myset", 5);
22         System.out.println("myset1 = " + myset1);
23 
24         /**
25          * 示例2: 相当于执行 srandmember myset -1
26          */
27         List<String> myset2 = jedis.srandmember("myset", -4);
28         System.out.println("myset2 = " + myset2);
29 
30     }
31 }

1.7、spop:弹出元素,格式是:spop set的key

操作如下:

5、Redis中对Set类型的操作命令

java示例代码:

 1 import redis.clients.jedis.Jedis;
 2 
 3 /**
 4  * redis中对于set类型的:
 5  * spop:弹出元素,格式是:spop set的key
 6  */
 7 public class Set_spop_operation {
 8     public static void main(String[] args) {
 9         Jedis jedis = new Jedis("127.0.0.1",6379);
10 
11         /**
12          * 示例1: 相当于执行 spop myset
13          */
14         String myset = jedis.spop("myset");
15         System.out.println("myset = " + myset);
16     }
17 }

1.8、smove:移动元素。格式是:smove 源set的key 目的set的key item项的值 (ps:一次只能移动一个item)

操作如下:

5、Redis中对Set类型的操作命令

java示例代码:

 1 import redis.clients.jedis.Jedis;
 2 
 3 /**
 4  * redis中对于set类型的:
 5  * smove:移动元素。格式是:smove 源set的key 目的set的key item项的值 (ps:一次只能移动一个item)
 6  */
 7 public class Set_smove_operation {
 8     public static void main(String[] args) {
 9         Jedis jedis = new Jedis("127.0.0.1",6379);
10 
11         /**
12          * 示例1: 相当于执行 smove myset myset2 item项的值
13          */
14         jedis.sadd("myset","1","2","3","4","5");
15         Long smove = jedis.smove("myset", "myset2", "2");
16         System.out.println("smove = " + smove);
17 
18         Long smove1 = jedis.smove("myset", "myset2", "5");
19         System.out.println("smove1 = " + smove1);
20 
21     }
22 }

1.9、sdiff:差集,返回在第一个set里面而不在后面任何一个set里面的项。格式是:sdiff set的key 用来比较的多个set的key

操作如下:

5、Redis中对Set类型的操作命令

java示例代码:

 1 import redis.clients.jedis.Jedis;
 2 
 3 import java.util.Set;
 4 
 5 /**
 6  * redis中对于set类型的:
 7  * sdiff:差集,返回在第一个set里面而不在后面任何一个set里面的项。格式是:sdiff set的key 用来比较的多个set的key
 8  * sdiffstore:差集并保留结果,格式是:sdiffstore 存放结果的set的key set的key 用来比较的多个set的key
 9  */
10 public class Set_sdiff_sdiffstore_operation {
11     public static void main(String[] args) {
12         Jedis jedis = new Jedis("127.0.0.1",6379);
13 
14         jedis.sadd("myset", "1", "2", "3", "4", "5");
15         jedis.sadd("myset2", "1", "2","9");
16         jedis.sadd("myset3", "5", "6");
17         /**
18          * 示例1: 相当于执行 sdiff set的key 用来比较的多个set的key
19          */
20         Set<String> sdiff = jedis.sdiff("myset", "myset2");
21         System.out.println("在myset中,但是不在myset2中的元素有:" + sdiff.toString());
22 
23         Set<String> sdiff1 = jedis.sdiff("myset", "myset2", "myset3");
24         System.out.println("在myset中,但是不在myset2、myset3中的元素有:" + sdiff1.toString());
25 
26         /**
27          * 示例2: 相当于执行 sdiffstore 存放结果的set的key set的key 用来比较的多个set的key
28          */
29         Long sdiffstore = jedis.sdiffstore("myset4", "myset", "myset2");
30         System.out.println("sdiffstore = " + sdiffstore);
31         Set<String> myset4 = jedis.smembers("myset4");
32         System.out.println("myset4 = " + myset4.toString());
33     }
34 }

 1.10、sdiffstore:差集并保留结果,格式是:sdiffstore 存放结果的set的key set的key 用来比较的多个set的key

操作如下:

5、Redis中对Set类型的操作命令

1.11、sinter:交集,返回多个set里面都有的项。格式是:sinter 多个set的key

操作如下:

5、Redis中对Set类型的操作命令

java示例代码:

 1 import redis.clients.jedis.Jedis;
 2 
 3 import java.util.Set;
 4 
 5 /**
 6  * redis中对于set类型的:
 7  * sinter:交集,返回多个set里面都有的项。格式是:sinter 多个set的key
 8  * sinterstore:交集并保留结果。格式是:sinterstore 存放结果的key 多个set的key
 9  */
10 public class Set_sinter_sinterstore_operation {
11     public static void main(String[] args) {
12         Jedis jedis = new Jedis("127.0.0.1",6379);
13 
14         jedis.sadd("myset", "1", "2", "3", "4", "5");
15         jedis.sadd("myset2", "1", "2","4","9");
16         jedis.sadd("myset3", "1","4","5", "6");
17         /**
18          * 示例1: 相当于执行 sinter 多个set的key
19          */
20         Set<String> sinter = jedis.sinter("myset", "myset2");
21         System.out.println("sinter = " + sinter);
22 
23         Set<String> sinter2 = jedis.sinter("myset", "myset2","myset3");
24         System.out.println("sinter2 = " + sinter2);
25 
26 
27         /**
28          * 示例2: 相当于执行 sinterstore 存放结果的key 多个set的key
29          */
30 
31         Long sinterstore = jedis.sinterstore("myset4", "myset","myset2");
32         System.out.println("sinterstore = " + sinterstore);
33         Set<String> myset4 = jedis.smembers("myset4");
34         System.out.println("myset4 = " + myset4);
35     }
36 }

1.12、sinterstore:交集并保留结果。格式是:sinterstore 存放结果的key 多个set的key

操作如下:

5、Redis中对Set类型的操作命令

1.13、sunion:并集。格式是:sunion 多个set的key

操作如下:

5、Redis中对Set类型的操作命令

java示例代码:

 1 import redis.clients.jedis.Jedis;
 2 
 3 import java.util.Set;
 4 
 5 /**
 6  * redis中对于set类型的:
 7  * sunion:并集。格式是:sunion 多个set的key
 8  * sunionstore:并集并保留结果。格式是:sunionstore 存放结果的set的key 多个set的key
 9  */
10 public class Set_sunion_sunionstore_operation {
11     public static void main(String[] args) {
12         Jedis jedis = new Jedis("127.0.0.1",6379);
13 
14         jedis.sadd("myset", "1", "2", "3", "4", "5");
15         jedis.sadd("myset2", "1", "2","9");
16         jedis.sadd("myset3", "5", "6");
17         
18         /**
19          * 示例1: 相当于执行 sunion 多个set的key
20          */
21         Set<String> sunion = jedis.sunion("myset", "myset2");
22         System.out.println("sunion = " + sunion);
23 
24         Set<String> sunion2 = jedis.sunion("myset", "myset2","myset3");
25         System.out.println("sunion2 = " + sunion2);
26 
27 
28         /**
29          * 示例2: 相当于执行 sunionstore 存放结果的set的key 多个set的key
30          */
31         Long sunionstore = jedis.sunionstore("myset4", "myset", "myset2");
32         System.out.println("sunionstore = " + sunionstore);
33         Set<String> myset4 = jedis.smembers("myset4");
34         System.out.println("myset4 = " + myset4);
35     }
36 }

1.14、sunionstore:并集并保留结果。格式是:sunionstore 存放结果的set的key 多个set的key

操作如下:

5、Redis中对Set类型的操作命令

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这