zoukankan      html  css  js  c++  java
  • 5、Redis中对Set类型的操作命令

    来源 https://www.cnblogs.com/xinhuaxuan/p/9256738.html

    写在前面的话:读书破万卷,编码如有神
    --------------------------------------------------------------------
    --------------------------------------------------------------------
    1、对Set类型的操作命令
    1.1、sadd:添加元素,格式是:sadd set的key item的项值,item项可以有多个。
    操作如下:
    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
    操作如下:
    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的项值
    操作如下:
    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项的值
    操作如下:
    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

    操作如下:
    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[数量]。(数量为正数时,会随机获取这么多个不重复的元素;如果数量大于集合元素个数,返回全部;如果数量为负,会随机获取这么多个元素,可能有重复。)

    操作如下:
    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
    操作如下:
    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)
    操作如下:
    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
    操作如下:
    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

    操作如下:
    1.11、sinter:交集,返回多个set里面都有的项。格式是:sinter 多个set的key 
    操作如下:
    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
    操作如下:
    1.13、sunion:并集。格式是:sunion 多个set的key
    操作如下:
    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
    操作如下:
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    android: 在android studio中使用retrolambda的步骤
    Shiro基础知识03----shiro授权(编程式授权),Permission详解,授权流程(zz)
    [Android] 关于Android的问号?和@符号的用法
    20170506 《摔跤吧,爸爸》观影笔记
    Android关于log日志,华为不输出log.v,log.d(zz)
    阅读日志:协鑫一年的多晶硅料产能能够生产做少装机容量的组件?
    《周鸿祎自述》读书笔记
    使用promise 和 generator来管理工作流
    读书笔记,《刻意练习》,第三章,心理表征
    读书笔记,《刻意练习》,第四章,黄金标准
  • 原文地址:https://www.cnblogs.com/cdchencw/p/14451363.html
Copyright © 2011-2022 走看看