Jedis操作redis--Set篇-阿里云开发者社区

开发者社区> 玄学酱> 正文

Jedis操作redis--Set篇

简介:
+关注继续查看
  1. package com.component.jedis;

  2. import java.util.Set;

  3. import redis.clients.jedis.Jedis;


  4. public class JedisSet extends JedisCommon{
  5.         
  6.         private static final String OK_CODE = "OK";
  7.     private static final String OK_MULTI_CODE = "+OK";
  8.     
  9.     /**
  10.      * 把一个或多个元素添加到指定集合
  11.      * 
  12.      * @param key
  13.      * @param members
  14.      * @return
  15.      */
  16.     public static Long sadd(String key, String members){
  17.         Jedis jedis = JedisManager.getJedis();
  18.         Long result ;
  19.         try {
  20.             result = jedis.sadd(key, members);
  21.         }finally{
  22.             JedisManager.returnResource(jedis);
  23.         }
  24.         return result;
  25.     }
  26.     
  27.     /**
  28.      * 返回多个集合的差集
  29.      * @param keys
  30.      * @return
  31.      */
  32.     public static Set<String> sdiff(String... keys){
  33.         Jedis jedis = JedisManager.getJedis();
  34.         Set<String> result ;
  35.         try {
  36.             result = jedis.sdiff(keys);
  37.         }finally{
  38.             JedisManager.returnResource(jedis);
  39.         }
  40.         return result;
  41.     }
  42.     
  43.     /**
  44.      * 返回多个集合的交集
  45.      * 
  46.      * @param keys
  47.      * @return
  48.      */
  49.     public static Set<String> sinter(String... keys){
  50.         Jedis jedis = JedisManager.getJedis();
  51.         Set<String> result ;
  52.         try {
  53.             result = jedis.sinter(keys);
  54.         }finally{
  55.             JedisManager.returnResource(jedis);
  56.         }
  57.         return result;
  58.     }
  59.     
  60.     /**
  61.      * 判断元素是否是集合成员
  62.      * 
  63.      * @param key
  64.      * @param member
  65.      * @return
  66.      */
  67.     public static boolean sismember(String key, String member){
  68.         Jedis jedis = JedisManager.getJedis();
  69.         boolean result ;
  70.         try {
  71.             result = jedis.sismember(key, member);
  72.         }finally{
  73.             JedisManager.returnResource(jedis);
  74.         }
  75.         return result;
  76.     }
  77.     
  78.     /**
  79.      * 返回集合所有成员
  80.      * 
  81.      * @param key
  82.      * @return
  83.      */
  84.     public static Set<String> smembers(String key){
  85.         Jedis jedis = JedisManager.getJedis();
  86.         Set<String> result ;
  87.         try {
  88.             result = jedis.smembers(key);
  89.         }finally{
  90.             JedisManager.returnResource(jedis);
  91.         }
  92.         return result;
  93.     }
  94.     
  95.     /**
  96.      * 把指定成员从一个集合移动到目标集合,
  97.      *  指定成员不存在,不执行任何操作 
  98.      * @param srckey
  99.      * @param dstkey
  100.      * @param member
  101.      * @return
  102.      */
  103.     public static Long smove(String srckey, String dstkey, String member){
  104.         Jedis jedis = JedisManager.getJedis();
  105.         Long result ;
  106.         try {
  107.             result = jedis.smove(srckey, dstkey, member);
  108.         }finally{
  109.             JedisManager.returnResource(jedis);
  110.         }
  111.         return result;
  112.     }
  113.     
  114.     /**
  115.      * 随机移除并返回一个元素
  116.      * 
  117.      * @param key
  118.      * @return
  119.      */
  120.     public static String spop(String key){
  121.         Jedis jedis = JedisManager.getJedis();
  122.         String result ;
  123.         try {
  124.             result = jedis.spop(key);
  125.         }finally{
  126.             JedisManager.returnResource(jedis);
  127.         }
  128.         return result;
  129.     }
  130.     
  131.     /**
  132.      * 移除一个或多个元素,不存在的  元素会被忽略
  133.      * 
  134.      * @param key
  135.      * @param members
  136.      * @return
  137.      */
  138.     public static Long srem(String key, String... members){
  139.         Jedis jedis = JedisManager.getJedis();
  140.         Long result ;
  141.         try {
  142.             result = jedis.srem(key, members);
  143.         }finally{
  144.             JedisManager.returnResource(jedis);
  145.         }
  146.         return result;
  147.     }
  148.     
  149.     /**
  150.      * 返回指定集合的并集
  151.      * 
  152.      * @param keys
  153.      * @return
  154.      */
  155.     public static Set<String> sunion(String... keys){
  156.         Jedis jedis = JedisManager.getJedis();
  157.         Set<String> result ;
  158.         try {
  159.             result = jedis.sunion(keys);
  160.         }finally{
  161.             JedisManager.returnResource(jedis);
  162.         }
  163.         return result;
  164.     }
  165.     
  166.     /**
  167.      * 当key不存在时,才放入值,超时时间单位为秒
  168.      * @param jedis
  169.      * @param key
  170.      * @param value
  171.      * @return
  172.      */
  173.     public static boolean set(String key, String value, Long timeOut){
  174.         
  175.         Jedis jedis = null;
  176.         String resp = null;
  177.         try{
  178.             jedis = JedisManager.getJedis();
  179.             resp = jedis.set(key, value, "NX", "EX", timeOut == null ? 1L : timeOut);
  180.         } finally{
  181.             JedisManager.returnResource(jedis);  
  182.         }
  183.         return isStatusOk(resp);
  184.     }
  185.     
  186.     /**
  187.      * 判断 返回值是否ok.
  188.      */
  189.     public static boolean isStatusOk(String status) {
  190.         return (status != null) && (OK_CODE.equals(status) || OK_MULTI_CODE.equals(status));
  191.     }
  192. }





本文作者:zhaohui520013
本文来自云栖社区合作伙伴rediscn,了解相关信息可以关注redis.cn网站。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ASP.Net Core的Code Fist代码先行操作方法
Asp.Net  core的Code Fist(代码先行)主要有以下几步: 1.创建实体类 2.创建数据库上下文 3.填加连接字符串 4.依赖注入 5.添加基架工具并执行初始迁移 6搭建模型的基本架构(更具模型生成网页Page) 首先需要在创建出实体类,此处以微软官方文档中的Movice实体类为例。
1041 0
Redis中的键值过期操作
Redis中的键值过期操作
7 0
阿里云 E-MapReduce ClickHouse 操作指南 05 期 — 常见问题
阿里云 E-MapReduce(简称 EMR )是运行在阿里云平台上的一种大数据处理的系统解决方案。ClickHouse 作为开源的列式存储数据库,主要用于在线分析处理查询(OLAP),能够使用 SQL 查询实时生成分析数据报告。而阿里云 EMR ClickHouse 则提供了开源 OLAP 分析引擎 ClickHouse 的云上托管服务。
279 0
让SecureCRT终端字体显示颜色的操作
勾选下面红框中的内容就好啦 效果如下
1700 0
python3操作socketserver
socketserver是标准库中的一个高级模块,用于网络客户端与服务器的实现.模块中,已经实现了一些可供使用的类. 在python3中,导入socketserver模块使用的命令: import socketserver socketserver模块包括许多可以简化TCP,UDP,UNIX域套接字服务器实现的类. 1.
827 0
+关注
玄学酱
这个时候,玄酱是不是应该说点什么...
20710
文章
438
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载