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

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

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

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

1、对Set类型的操作命令

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

操作如下:

java示例代码:

1 1 import redis.clients.jedis.Jedis; 2 2 3 3 /** 4 4 * redis中对于set类型的: sadd 操作示例 5 5 * sadd:添加元素,格式是:sadd set的key item的项值,item项可以有多个。 6 6 */ 7 7 public class Set_sadd_operation { 8 8 public static void main(String[] args) { 9 9 Jedis jedis = new Jedis("127.0.0.1",6379); 1010 1111 /** 1212 * 示例1: 相当于执行 sadd k1 v1 1313 */ 1414 Long myset = jedis.sadd("myset", "1"); 1515 System.out.println("myset = " + myset); 1616 1717 /** 1818 * 示例2: 相当于执行 sadd k1 v1 v2 v3 v4 1919 */ 2020 Long myset1 = jedis.sadd("myset", "1", "2", "3", "4"); 2121 System.out.println("myset1 = " + myset1); 2222 } 2323 }

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

操作如下:

java示例代码:

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

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

操作如下:

java示例代码:

1 1 import redis.clients.jedis.Jedis; 2 2 3 3 /** 4 4 * redis中对于set类型的: sismember 操作示例 5 5 * sismember:判断元素是否在集合中,格式是:sismember set的key item的项值 6 6 */ 7 7 public class Set_sismember_operation { 8 8 9 9 public static void main(String[] args) { 1010 Jedis jedis = new Jedis("127.0.0.1",6379); 1111 /** 1212 * 示例1: 相当于执行 sismember myset 1 1313 */ 1414 Boolean sismember = jedis.sismember("myset", "1"); 1515 System.out.println("sismember = " + sismember); 1616 1717 1818 /** 1919 * 示例2: 相当于执行 sismember myset 11 2020 */ 2121 Boolean sismember1 = jedis.sismember("myset", "11"); 2222 System.out.println("sismember1 = " + sismember1); 2323 } 2424 }

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

操作如下:

java示例代码:

1 1 import redis.clients.jedis.Jedis; 2 2 3 3 /** 4 4 * redis中对于set类型的: 5 5 * srem:删除元素,格式是:srem set的key item项的值 6 6 */ 7 7 public class Set_srem_operation { 8 8 public static void main(String[] args) { 9 9 Jedis jedis = new Jedis("127.0.0.1",6379); 1010 /** 1111 * 示例1: 相当于执行 srem myset 1 1212 */ 1313 Long myset = jedis.srem("myset", "1"); 1414 System.out.println("myset = " + myset); 1515 1616 /** 1717 * 示例2: 相当于执行 srem myset 11 1818 */ 1919 Long myset1 = jedis.srem("myset", "11"); 2020 System.out.println("myset1 = " + myset1); 2121 } 2222 }

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

操作如下:

java示例代码:

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

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

操作如下:

java示例代码:

1 1 import redis.clients.jedis.Jedis; 2 2 3 3 import java.util.List; 4 4 import java.util.Set; 5 5 6 6 /** 7 7 * redis中对于set类型的: 8 8 * srandmember:随机获取集合中的元素,格式是:srandmember set的key[数量]。 9 9 * (数量为正数时,会随机获取这么多个不重复的元素;如果数量大于集合元素个数,返回全部;如果数量为负,会随机获取这么多个元素,可能有重复。) 1010 */ 1111 public class Set_srandmember_operation { 1212 public static void main(String[] args) { 1313 Jedis jedis = new Jedis("127.0.0.1",6379); 1414 1515 Set<String> myset = jedis.smembers("myset"); 1616 System.out.println("myset = " + myset); 1717 1818 /** 1919 * 示例1: 相当于执行 srandmember myset 5 2020 */ 2121 List<String> myset1 = jedis.srandmember("myset", 5); 2222 System.out.println("myset1 = " + myset1); 2323 2424 /** 2525 * 示例2: 相当于执行 srandmember myset -1 2626 */ 2727 List<String> myset2 = jedis.srandmember("myset", -4); 2828 System.out.println("myset2 = " + myset2); 2929 3030 } 3131 }

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

操作如下:

java示例代码:

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

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

操作如下:

java示例代码:

1 1 import redis.clients.jedis.Jedis; 2 2 3 3 /** 4 4 * redis中对于set类型的: 5 5 * smove:移动元素。格式是:smove 源set的key 目的set的key item项的值 (ps:一次只能移动一个item) 6 6 */ 7 7 public class Set_smove_operation { 8 8 public static void main(String[] args) { 9 9 Jedis jedis = new Jedis("127.0.0.1",6379); 1010 1111 /** 1212 * 示例1: 相当于执行 smove myset myset2 item项的值 1313 */ 1414 jedis.sadd("myset","1","2","3","4","5"); 1515 Long smove = jedis.smove("myset", "myset2", "2"); 1616 System.out.println("smove = " + smove); 1717 1818 Long smove1 = jedis.smove("myset", "myset2", "5"); 1919 System.out.println("smove1 = " + smove1); 2020 2121 } 2222 }

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

操作如下:

java示例代码:

1 1 import redis.clients.jedis.Jedis; 2 2 3 3 import java.util.Set; 4 4 5 5 /** 6 6 * redis中对于set类型的: 7 7 * sdiff:差集,返回在第一个set里面而不在后面任何一个set里面的项。格式是:sdiff set的key 用来比较的多个set的key 8 8 * sdiffstore:差集并保留结果,格式是:sdiffstore 存放结果的set的key set的key 用来比较的多个set的key 9 9 */ 1010 public class Set_sdiff_sdiffstore_operation { 1111 public static void main(String[] args) { 1212 Jedis jedis = new Jedis("127.0.0.1",6379); 1313 1414 jedis.sadd("myset", "1", "2", "3", "4", "5"); 1515 jedis.sadd("myset2", "1", "2","9"); 1616 jedis.sadd("myset3", "5", "6"); 1717 /** 1818 * 示例1: 相当于执行 sdiff set的key 用来比较的多个set的key 1919 */ 2020 Set<String> sdiff = jedis.sdiff("myset", "myset2"); 2121 System.out.println("在myset中,但是不在myset2中的元素有:" + sdiff.toString()); 2222 2323 Set<String> sdiff1 = jedis.sdiff("myset", "myset2", "myset3"); 2424 System.out.println("在myset中,但是不在myset2、myset3中的元素有:" + sdiff1.toString()); 2525 2626 /** 2727 * 示例2: 相当于执行 sdiffstore 存放结果的set的key set的key 用来比较的多个set的key 2828 */ 2929 Long sdiffstore = jedis.sdiffstore("myset4", "myset", "myset2"); 3030 System.out.println("sdiffstore = " + sdiffstore); 3131 Set<String> myset4 = jedis.smembers("myset4"); 3232 System.out.println("myset4 = " + myset4.toString()); 3333 } 3434 }

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

操作如下:

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

操作如下:

java示例代码:

1 1 import redis.clients.jedis.Jedis; 2 2 3 3 import java.util.Set; 4 4 5 5 /** 6 6 * redis中对于set类型的: 7 7 * sinter:交集,返回多个set里面都有的项。格式是:sinter 多个set的key 8 8 * sinterstore:交集并保留结果。格式是:sinterstore 存放结果的key 多个set的key 9 9 */ 1010 public class Set_sinter_sinterstore_operation { 1111 public static void main(String[] args) { 1212 Jedis jedis = new Jedis("127.0.0.1",6379); 1313 1414 jedis.sadd("myset", "1", "2", "3", "4", "5"); 1515 jedis.sadd("myset2", "1", "2","4","9"); 1616 jedis.sadd("myset3", "1","4","5", "6"); 1717 /** 1818 * 示例1: 相当于执行 sinter 多个set的key 1919 */ 2020 Set<String> sinter = jedis.sinter("myset", "myset2"); 2121 System.out.println("sinter = " + sinter); 2222 2323 Set<String> sinter2 = jedis.sinter("myset", "myset2","myset3"); 2424 System.out.println("sinter2 = " + sinter2); 2525 2626 2727 /** 2828 * 示例2: 相当于执行 sinterstore 存放结果的key 多个set的key 2929 */ 3030 3131 Long sinterstore = jedis.sinterstore("myset4", "myset","myset2"); 3232 System.out.println("sinterstore = " + sinterstore); 3333 Set<String> myset4 = jedis.smembers("myset4"); 3434 System.out.println("myset4 = " + myset4); 3535 } 3636 }

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

操作如下:

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

操作如下:

java示例代码:

1 1 import redis.clients.jedis.Jedis; 2 2 3 3 import java.util.Set; 4 4 5 5 /** 6 6 * redis中对于set类型的: 7 7 * sunion:并集。格式是:sunion 多个set的key 8 8 * sunionstore:并集并保留结果。格式是:sunionstore 存放结果的set的key 多个set的key 9 9 */ 1010 public class Set_sunion_sunionstore_operation { 1111 public static void main(String[] args) { 1212 Jedis jedis = new Jedis("127.0.0.1",6379); 1313 1414 jedis.sadd("myset", "1", "2", "3", "4", "5"); 1515 jedis.sadd("myset2", "1", "2","9"); 1616 jedis.sadd("myset3", "5", "6"); 1717 1818 /** 1919 * 示例1: 相当于执行 sunion 多个set的key 2020 */ 2121 Set<String> sunion = jedis.sunion("myset", "myset2"); 2222 System.out.println("sunion = " + sunion); 2323 2424 Set<String> sunion2 = jedis.sunion("myset", "myset2","myset3"); 2525 System.out.println("sunion2 = " + sunion2); 2626 2727 2828 /** 2929 * 示例2: 相当于执行 sunionstore 存放结果的set的key 多个set的key 3030 */ 3131 Long sunionstore = jedis.sunionstore("myset4", "myset", "myset2"); 3232 System.out.println("sunionstore = " + sunionstore); 3333 Set<String> myset4 = jedis.smembers("myset4"); 3434 System.out.println("myset4 = " + myset4); 3535 } 3636 }

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

操作如下:

点赞
收藏

评论区

加载中...

相关推荐

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

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )