Redis操作Set工具类封装,Java Redis Set命令封装

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2016年9月27日 10:25:19 星期二

http://fanshuyao.iteye.com/

Redis操作字符串工具类封装:http://fanshuyao.iteye.com/blog/2326221

Redis操作Hash工具类封装:http://fanshuyao.iteye.com/blog/2327134

Redis操作List工具类封装:http://fanshuyao.iteye.com/blog/2327137

Redis操作Set工具类封装:http://fanshuyao.iteye.com/blog/2327228

Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

注:下面的代码只是方法封装,缺少一部分,因为是【Redis操作字符串工具类封装:http://fanshuyao.iteye.com/blog/2326221】的延续,把下面的代码增加到之前代码后面就可以了。

/**************************** redis 集合Set start***************************/
/**Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。**/ /**
* 向集合添加一个或多个成员,返回添加成功的数量
* @param key
* @param members
* @return Long
*/
public static Long sadd(String key, String... members){
Jedis jedis = jedisPool.getResource();
Long value = jedis.sadd(key, members);
jedis.close();
return value;
} /**
* 获取集合的成员数
* @param key
* @return
*/
public static Long scard(String key){
Jedis jedis = jedisPool.getResource();
Long value = jedis.scard(key);
jedis.close();
return value;
} /**
* 返回集合中的所有成员
* @param key
* @return Set<String>
*/
public static Set<String> smembers(String key){
Jedis jedis = jedisPool.getResource();
Set<String> values = jedis.smembers(key);
jedis.close();
return values;
} /**
* 判断 member 元素是否是集合 key 的成员,在集合中返回True
* @param key
* @param member
* @return Boolean
*/
public static Boolean sIsMember(String key, String member){
Jedis jedis = jedisPool.getResource();
Boolean value = jedis.sismember(key, member);
jedis.close();
return value;
} /**
* 返回给定所有集合的差集(获取第一个key中与其它key不相同的值,当只有一个key时,就返回这个key的所有值)
* @param keys
* @return Set<String>
*/
public static Set<String> sdiff(String... keys){
Jedis jedis = jedisPool.getResource();
Set<String> values = jedis.sdiff(keys);
jedis.close();
return values;
} /**
* 返回给定所有集合的差集并存储在 targetKey中,类似sdiff,只是该方法把返回的差集保存到targetKey中
* <li>当有差集时,返回true</li>
* <li>当没有差集时,返回false</li>
* @param targetKey
* @param keys
* @return
*/
public static boolean sdiffStore(String targetKey, String... keys){
Jedis jedis = jedisPool.getResource();
Long statusCode = jedis.sdiffstore(targetKey, keys);
jedis.close();
if(SUCCESS_STATUS_LONG == statusCode){
return true;
}
return false;
} /**
* 返回给定所有集合的交集(获取第一个key中与其它key相同的值,要求所有key都要有相同的值,如果没有相同,返回Null。当只有一个key时,就返回这个key的所有值)
* @param keys
* @return Set<String>
*/
public static Set<String> sinter(String... keys){
Jedis jedis = jedisPool.getResource();
Set<String> values = jedis.sinter(keys);
jedis.close();
return values;
} /**
* 返回给定所有集合的交集并存储在 targetKey中,类似sinter
* @param targetKey
* @param keys
* @return boolean
*/
public static boolean sinterStore(String targetKey, String... keys){
Jedis jedis = jedisPool.getResource();
Long statusCode = jedis.sinterstore(targetKey, keys);
jedis.close();
if(SUCCESS_STATUS_LONG == statusCode){
return true;
}
return false;
} /**
* 将 member 元素从 sourceKey 集合移动到 targetKey 集合
* <li>成功返回true</li>
* <li>当member不存在于sourceKey时,返回false</li>
* <li>当sourceKey不存在时,也返回false</li>
* @param sourceKey
* @param targetKey
* @param member
* @return boolean
*/
public static boolean smove(String sourceKey, String targetKey, String member){
Jedis jedis = jedisPool.getResource();
Long value = jedis.smove(sourceKey, targetKey, member);
jedis.close();
if(value > 0){
return true;
}
return false;
} /**
* 移除并返回集合中的一个随机元素
* <li>当set为空或者不存在时,返回Null</li>
* @param key
* @return String
*/
public static String spop(String key){
Jedis jedis = jedisPool.getResource();
String value = jedis.spop(key);
jedis.close();
return value;
} /**
* 返回集合中一个或多个随机数
* <li>当count大于set的长度时,set所有值返回,不会抛错。</li>
* <li>当count等于0时,返回[]</li>
* <li>当count小于0时,也能返回。如-1返回一个,-2返回两个</li>
* @param key
* @param count
* @return List<String>
*/
public static List<String> srandMember(String key, int count){
Jedis jedis = jedisPool.getResource();
List<String> values = jedis.srandmember(key, count);
jedis.close();
return values;
} /**
* 移除集合中一个或多个成员
* @param key
* @param members
* @return
*/
public static boolean srem(String key, String... members){
Jedis jedis = jedisPool.getResource();
//Integer reply, specifically: 1 if the new element was removed
//0 if the new element was not a member of the set
Long value = jedis.srem(key, members);
jedis.close();
if(value > 0){
return true;
}
return false;
} /**
* 返回所有给定集合的并集,相同的只会返回一个
* @param keys
* @return
*/
public static Set<String> sunion(String... keys){
Jedis jedis = jedisPool.getResource();
Set<String> values = jedis.sunion(keys);
jedis.close();
return values;
} /**
* 所有给定集合的并集存储在targetKey集合中
* <li>注:合并时,只会把keys中的集合返回,不包括targetKey本身</li>
* <li>如果targetKey本身是有值的,合并后原来的值是没有的,因为把keys的集合重新赋值给targetKey</li>
* <li>要想保留targetKey本身的值,keys要包含原来的targetKey</li>
* @param targetKey
* @param keys
* @return
*/
public static boolean sunionStore(String targetKey, String... keys){
Jedis jedis = jedisPool.getResource();
//返回合并后的长度
Long statusCode = jedis.sunionstore(targetKey, keys);
System.out.println("statusCode="+statusCode);
jedis.close();
if(statusCode > 0){
return true;
}
return false;
} /**************************** redis 集合Set end***************************/

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2016年9月27日 10:25:19 星期二

http://fanshuyao.iteye.com/

Redis操作Set工具类封装,Java Redis Set命令封装的更多相关文章

  1. Redis操作List工具类封装,Java Redis List命令封装

    Redis操作List工具类封装,Java Redis List命令封装 >>>>>>>>>>>>>>>> ...

  2. Redis操作Hash工具类封装,Redis工具类封装

    Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...

  3. Redis操作字符串工具类封装,Redis工具类封装

    Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...

  4. SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(五): 数据表设计、使用 jwt、redis、sms 工具类完善注册登录逻辑

    (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y-h/p ...

  5. 自己封装的poi操作Excel工具类

    自己封装的poi操作Excel工具类 在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完 ...

  6. Redis,JedisPool工具类

    Redis,JedisPool工具类 1.JedisPool 详细配置解释代码 2.Jedis工具类 导入相关依赖: commons-pool2-2.3.jar jedis-2.7.0.jar 1.J ...

  7. java中文件操作的工具类

    代码: package com.lky.pojo; import java.io.BufferedReader; import java.io.BufferedWriter; import java. ...

  8. Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie

    Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie >>>>>>>>>>>>& ...

  9. [Google Guava] 2.3-强大的集合工具类:java.util.Collections中未包含的集合工具

    原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.G ...

随机推荐

  1. Samba ‘dcerpc_read_ncacn_packet_done’函数缓冲区溢出漏洞

    漏洞名称: Samba ‘dcerpc_read_ncacn_packet_done’函数缓冲区溢出漏洞 CNNVD编号: CNNVD-201312-169 发布时间: 2013-12-12 更新时间 ...

  2. jquery easyui datebox 的使用

    看了jquery easyui databox的官方api,还可以加入倒是很简单,但是想要获得他的值和修改值就很费劲,不知道怎么弄,试了n次终于搞定.这里总结一下,供有相同问题的人查询. 1. 官方a ...

  3. 对easyUI中课堂源码编辑改进建议

    在孙宇老师讲得Easyui第10讲完后,基本的增删该查做出来了,但是编辑存在一个问题:行内样式编辑修改,如果当用户没有修改数据,孙宇老师讲得时候直接return,这样做是不合理的:第二次再使用右键编辑 ...

  4. 【转】Java 内存模型及GC原理

    一个优秀Java程序员,必须了解Java内存模型.GC工作原理,以及如何优化GC的性能.与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率,才能 ...

  5. 使用Flashbuilder/Flashbuilder-plugins搭建Flex工程每日构建(自动化构建)的方法

    前段时间研究flex工程自动编译的时候,遇到了阻碍,就放下了,直到今天每日构建的问题又一次给项目组带来了麻烦,于是我彻底愤怒了. 最后,我的怒火没有白费,写出来以发泄情绪. [基本原理]: adobe ...

  6. 转移python

    这段时间一直学python,工作需要做一个基于python的web管理系统,恶补Django. 之前一直觉得开发人员只需要掌握了某个技术就OK了,没有重视总结学习的知识,最近经历的事情让我改变了之前的 ...

  7. POJ-3207 Ikki's Story IV - Panda's Trick 2sat

    题目链接:http://poj.org/problem?id=3207 题意:在一个圆圈上有n个点,现在用线把点两两连接起来,线只能在圈外或者圈内,现给出m个限制,第 i 个点和第 j 个点必须链接在 ...

  8. PHP中的生成XML文件的4种方法(转)

    <?xml version="1.0" encoding="utf-8"?> <article> <item> <ti ...

  9. poj 3281 Dining【拆点网络流】

    Dining Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 11828   Accepted: 5437 Descripti ...

  10. js 类似发微博或者微信朋友圈的时间显示 刚刚 几天前

    群里的一个小伙伴(NightEagle)写的,共享出来了,我就做个记录. function getDateDiff(dateStr) { var publishTime = getDateTimeSt ...