Redis操作List工具类封装,Java Redis List命令封装
Redis操作List工具类封装,Java Redis List命令封装
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2016年9月26日 16:28:23 星期一
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列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
注:下面的代码只是方法封装,缺少一部分,因为是【Redis操作字符串工具类封装:http://fanshuyao.iteye.com/blog/2326221】的延续,把下面的代码增加到之前代码后面就可以了。
/**************************** redis 列表List start***************************/ /**
* 将一个值插入到列表头部,value可以重复,返回列表的长度
* @param key
* @param value String
* @return 返回List的长度
*/
public static Long lpush(String key, String value){
Jedis jedis = jedisPool.getResource();
Long length = jedis.lpush(key, value);
jedis.close();
return length;
} /**
* 将多个值插入到列表头部,value可以重复
* @param key
* @param values String[]
* @return 返回List的数量size
*/
public static Long lpush(String key, String[] values){
Jedis jedis = jedisPool.getResource();
Long size = jedis.lpush(key, values);
jedis.close();
//System.out.println(result);
return size;
} /**
* 获取List列表
* @param key
* @param start long,开始索引
* @param end long, 结束索引
* @return List<String>
*/
public static List<String> lrange(String key, long start, long end){
Jedis jedis = jedisPool.getResource();
List<String> list = jedis.lrange(key, start, end);
jedis.close();
return list;
} /**
* 通过索引获取列表中的元素
* @param key
* @param index,索引,0表示最新的一个元素
* @return String
*/
public static String lindex(String key, long index){
Jedis jedis = jedisPool.getResource();
String str = jedis.lindex(key, index);
jedis.close();
return str;
} /**
* 获取列表长度,key为空时返回0
* @param key
* @return Long
*/
public static Long llen(String key){
Jedis jedis = jedisPool.getResource();
Long length = jedis.llen(key);
jedis.close();
return length;
} /**
* 在列表的元素前或者后插入元素,返回List的长度
* @param key
* @param where LIST_POSITION
* @param pivot 以该元素作为参照物,是在它之前,还是之后(pivot:枢轴;中心点,中枢;[物]支点,支枢;[体]回转运动。)
* @param value
* @return Long
*/
public static Long linsert(String key, LIST_POSITION where, String pivot, String value){
Jedis jedis = jedisPool.getResource();
Long length = jedis.linsert(key, where, pivot, value);
jedis.close();
return length;
} /**
* 将一个或多个值插入到已存在的列表头部,当成功时,返回List的长度;当不成功(即key不存在时,返回0)
* @param key
* @param value String
* @return Long
*/
public static Long lpushx(String key, String value){
Jedis jedis = jedisPool.getResource();
Long length = jedis.lpushx(key, value);
jedis.close();
return length;
} /**
* 将一个或多个值插入到已存在的列表头部,当成功时,返回List的长度;当不成功(即key不存在时,返回0)
* @param key
* @param values String[]
* @return Long
*/
public static Long lpushx(String key, String[] values){
Jedis jedis = jedisPool.getResource();
Long length = jedis.lpushx(key, values);
jedis.close();
return length;
} /**
* 移除列表元素,返回移除的元素数量
* @param key
* @param count,标识,表示动作或者查找方向
* <li>当count=0时,移除所有匹配的元素;</li>
* <li>当count为负数时,移除方向是从尾到头;</li>
* <li>当count为正数时,移除方向是从头到尾;</li>
* @param value 匹配的元素
* @return Long
*/
public static Long lrem(String key, long count, String value){
Jedis jedis = jedisPool.getResource();
Long length = jedis.lrem(key, count, value);
jedis.close();
return length;
} /**
* 通过索引设置列表元素的值,当超出索引时会抛错。成功设置返回true
* @param key
* @param index 索引
* @param value
* @return boolean
*/
public static boolean lset(String key, long index, String value){
Jedis jedis = jedisPool.getResource();
String statusCode = jedis.lset(key, index, value);
jedis.close();
if(SUCCESS_OK.equalsIgnoreCase(statusCode)){
return true;
}else{
return false;
}
} /**
* 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
* @param key
* @param start
* <li>可以为负数(-1是列表的最后一个元素,-2是列表倒数第二的元素。)</li>
* <li>如果start大于end,则返回一个空的列表,即列表被清空</li>
* @param end
* <li>可以为负数(-1是列表的最后一个元素,-2是列表倒数第二的元素。)</li>
* <li>可以超出索引,不影响结果</li>
* @return boolean
*/
public static boolean ltrim(String key, long start, long end){
Jedis jedis = jedisPool.getResource();
String statusCode = jedis.ltrim(key, start, end);
jedis.close();
if(SUCCESS_OK.equalsIgnoreCase(statusCode)){
return true;
}else{
return false;
}
} /**
* 移出并获取列表的第一个元素,当列表不存在或者为空时,返回Null
* @param key
* @return String
*/
public static String lpop(String key){
Jedis jedis = jedisPool.getResource();
String value = jedis.lpop(key);
jedis.close();
return value;
} /**
* 移除并获取列表最后一个元素,当列表不存在或者为空时,返回Null
* @param key
* @return String
*/
public static String rpop(String key){
Jedis jedis = jedisPool.getResource();
String value = jedis.rpop(key);
jedis.close();
return value;
} /**
* 在列表中的尾部添加一个个值,返回列表的长度
* @param key
* @param value
* @return Long
*/
public static Long rpush(String key, String value){
Jedis jedis = jedisPool.getResource();
Long length = jedis.rpush(key, value);
jedis.close();
return length;
} /**
* 在列表中的尾部添加多个值,返回列表的长度
* @param key
* @param values
* @return Long
*/
public static Long rpush(String key, String[] values){
Jedis jedis = jedisPool.getResource();
Long length = jedis.rpush(key, values);
jedis.close();
return length;
} /**
* 仅当列表存在时,才会向列表中的尾部添加一个值,返回列表的长度
* @param key
* @param value
* @return Long
*/
public static Long rpushx(String key, String value){
Jedis jedis = jedisPool.getResource();
Long length = jedis.rpushx(key, value);
jedis.close();
return length;
} /**
* 移除列表的最后一个元素,并将该元素添加到另一个列表并返回
* @param sourceKey 源列表的key,当源key不存在时,结果返回Null
* @param targetKey 目标列表的key,当目标key不存在时,会自动创建新的
* @return String
*/
public static String rpopLpush(String sourceKey, String targetKey){
Jedis jedis = jedisPool.getResource();
String value = jedis.rpoplpush(sourceKey, targetKey);
jedis.close();
return value;
} /**
* 移出并获取列表的【第一个元素】, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
* @param timeout 单位为秒
* @param keys
* <li>当有多个key时,只要某个key值的列表有内容,即马上返回,不再阻塞。</li>
* <li>当所有key都没有内容或不存在时,则会阻塞,直到有值返回或者超时。</li>
* <li>当超期时间到达时,keys列表仍然没有内容,则返回Null</li>
* @return List<String>
*/
public static List<String> blpop(int timeout, String... keys){
Jedis jedis = jedisPool.getResource();
List<String> values = jedis.blpop(timeout, keys);
jedis.close();
return values;
} /**
* 移出并获取列表的【最后一个元素】, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
* @param timeout 单位为秒
* @param keys
* <li>当有多个key时,只要某个key值的列表有内容,即马上返回,不再阻塞。</li>
* <li>当所有key都没有内容或不存在时,则会阻塞,直到有值返回或者超时。</li>
* <li>当超期时间到达时,keys列表仍然没有内容,则返回Null</li>
* @return List<String>
*/
public static List<String> brpop(int timeout, String... keys){
Jedis jedis = jedisPool.getResource();
List<String> values = jedis.brpop(timeout, keys);
jedis.close();
return values;
} /**
* 从列表中弹出列表最后一个值,将弹出的元素插入到另外一个列表中并返回它;
* 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
* @param sourceKey 源列表的key,当源key不存在时,则会进行阻塞
* @param targetKey 目标列表的key,当目标key不存在时,会自动创建新的
* @param timeout 单位为秒
* @return String
*/
public static String brpopLpush(String sourceKey, String targetKey, int timeout){
Jedis jedis = jedisPool.getResource();
String value = jedis.brpoplpush(sourceKey, targetKey, timeout);
jedis.close();
return value;
} /**************************** redis 列表List end***************************/
Redis操作字符串工具类封装:http://fanshuyao.iteye.com/blog/2326221
Redis操作Hash工具类封装:http://fanshuyao.iteye.com/blog/2327134
Redis操作List工具类封装:http://fanshuyao.iteye.com/blog/2327137
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2016年9月26日 16:28:23 星期一
http://fanshuyao.iteye.com/
Redis操作List工具类封装,Java Redis List命令封装的更多相关文章
- Redis操作Set工具类封装,Java Redis Set命令封装
Redis操作Set工具类封装,Java Redis Set命令封装 >>>>>>>>>>>>>>>>& ...
- Redis操作Hash工具类封装,Redis工具类封装
Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...
- Redis操作字符串工具类封装,Redis工具类封装
Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...
- SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(五): 数据表设计、使用 jwt、redis、sms 工具类完善注册登录逻辑
(1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y-h/p ...
- 自己封装的poi操作Excel工具类
自己封装的poi操作Excel工具类 在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完 ...
- Redis,JedisPool工具类
Redis,JedisPool工具类 1.JedisPool 详细配置解释代码 2.Jedis工具类 导入相关依赖: commons-pool2-2.3.jar jedis-2.7.0.jar 1.J ...
- java中文件操作的工具类
代码: package com.lky.pojo; import java.io.BufferedReader; import java.io.BufferedWriter; import java. ...
- Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie
Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie >>>>>>>>>>>>& ...
- [Google Guava] 2.3-强大的集合工具类:java.util.Collections中未包含的集合工具
原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.G ...
随机推荐
- java常量池概念
在class文件中,“常量池”是最复杂也最值得关注的内容. Java是一种动态连接的语言,常量池的作用非常重要,常量池中除了包含代码中所定义的各种基本类型(如int.long等等)和对象型(如Stri ...
- 【转】基本数据持久性(一) 使用plist保存和读取数据
原文网址:http://www.it165.net/pro/html/201309/7170.html 想保存成绩.记录得分.保存账号密码等等?数据持久性可以做到这一点!这篇文章通过简单的程序,来分享 ...
- 【转】Android 源码编译make的错误处理--不错
原文网址:http://blog.csdn.net/ithomer/article/details/6977386 Android源码下载:官方下载 或参考android源码下载方式 Android编 ...
- word 中Sentences、Paragraph等含义和用法
word 中有Words,Characters,Sentences.Paragraph,Sections 具体含义如下表达式 含义 返回的对象 Words(index) ...
- oracle中查看某个用户名下所有的表以及sequence
select table_name from all_tables where owner =upper('jdfp') ; 此处查的是tieba这个用户表空间下的所有表 ...
- [King.yue]Ext.JS 弹出窗体取值赋值
//从Grid取值 var name = Ext.getCmp(gridGridID).getView().getSelectionModel().getSelection()[0].data.Nam ...
- 揭开嵌入式c面试题背后的玄机
今天老大让我针对一个面试者出些嵌入式方面的面试题,主要是想对他的技术深度进一步了解.我就出了下面这些问题,每个问题背后都是考察一个嵌入式程序员应该具备的相关技能.当然这些只是我的个人理解,不一定正确. ...
- ambari安装过程中的问题汇总
今天重新安装ambari过程中,遇到了几个问题,耗费了我很长时间,在此记录一下 ambari重新安装可参考我之前的一篇随笔 http://www.cnblogs.com/6tian/p/4097401 ...
- 【Java基础】Java多线程之线程组和线程池
在上一篇文章中,讲述了线程的基本概念和用法,这里将继续讲述线程组和线程池的一些东西. 线程组:java.lang.ThreadGroup 1. 线程组的介绍 线程组表示一个线程的集合.此外,线程组也可 ...
- 【原创】Mac上编译Hadoop1.0.3出现的一些问题
create-native-configure: [exec] configure.ac:47: error: possibly undefined macro: AC_PROG_LIBTOOL [e ...