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

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)

一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

Java代码  下载

  1. /**************************** redis 列表List start***************************/
  2. /**
  3. * 将一个值插入到列表头部,value可以重复,返回列表的长度
  4. * @param key
  5. * @param value String
  6. * @return 返回List的长度
  7. */
  8. public static Long lpush(String key, String value){
  9. Jedis jedis = jedisPool.getResource();
  10. Long length = jedis.lpush(key, value);
  11. jedis.close();
  12. return length;
  13. }
  14. /**
  15. * 将多个值插入到列表头部,value可以重复
  16. * @param key
  17. * @param values String[]
  18. * @return 返回List的数量size
  19. */
  20. public static Long lpush(String key, String[] values){
  21. Jedis jedis = jedisPool.getResource();
  22. Long size = jedis.lpush(key, values);
  23. jedis.close();
  24. //System.out.println(result);
  25. return size;
  26. }
  27. /**
  28. * 获取List列表
  29. * @param key
  30. * @param start long,开始索引
  31. * @param end long, 结束索引
  32. * @return List<String>
  33. */
  34. public static List<String> lrange(String key, long start, long end){
  35. Jedis jedis = jedisPool.getResource();
  36. List<String> list = jedis.lrange(key, start, end);
  37. jedis.close();
  38. return list;
  39. }
  40. /**
  41. * 通过索引获取列表中的元素
  42. * @param key
  43. * @param index,索引,0表示最新的一个元素
  44. * @return String
  45. */
  46. public static String lindex(String key, long index){
  47. Jedis jedis = jedisPool.getResource();
  48. String str = jedis.lindex(key, index);
  49. jedis.close();
  50. return str;
  51. }
  52. /**
  53. * 获取列表长度,key为空时返回0
  54. * @param key
  55. * @return Long
  56. */
  57. public static Long llen(String key){
  58. Jedis jedis = jedisPool.getResource();
  59. Long length = jedis.llen(key);
  60. jedis.close();
  61. return length;
  62. }
  63. /**
  64. * 在列表的元素前或者后插入元素,返回List的长度
  65. * @param key
  66. * @param where LIST_POSITION
  67. * @param pivot 以该元素作为参照物,是在它之前,还是之后(pivot:枢轴;中心点,中枢;[物]支点,支枢;[体]回转运动。)
  68. * @param value
  69. * @return Long
  70. */
  71. public static Long linsert(String key, LIST_POSITION where, String pivot, String value){
  72. Jedis jedis = jedisPool.getResource();
  73. Long length = jedis.linsert(key, where, pivot, value);
  74. jedis.close();
  75. return length;
  76. }
  77. /**
  78. * 将一个或多个值插入到已存在的列表头部,当成功时,返回List的长度;当不成功(即key不存在时,返回0)
  79. * @param key
  80. * @param value String
  81. * @return Long
  82. */
  83. public static Long lpushx(String key, String value){
  84. Jedis jedis = jedisPool.getResource();
  85. Long length = jedis.lpushx(key, value);
  86. jedis.close();
  87. return length;
  88. }
  89. /**
  90. * 将一个或多个值插入到已存在的列表头部,当成功时,返回List的长度;当不成功(即key不存在时,返回0)
  91. * @param key
  92. * @param values String[]
  93. * @return Long
  94. */
  95. public static Long lpushx(String key, String[] values){
  96. Jedis jedis = jedisPool.getResource();
  97. Long length = jedis.lpushx(key, values);
  98. jedis.close();
  99. return length;
  100. }
  101. /**
  102. * 移除列表元素,返回移除的元素数量
  103. * @param key
  104. * @param count,标识,表示动作或者查找方向
  105. * <li>当count=0时,移除所有匹配的元素;</li>
  106. * <li>当count为负数时,移除方向是从尾到头;</li>
  107. * <li>当count为正数时,移除方向是从头到尾;</li>
  108. * @param value 匹配的元素
  109. * @return Long
  110. */
  111. public static Long lrem(String key, long count, String value){
  112. Jedis jedis = jedisPool.getResource();
  113. Long length = jedis.lrem(key, count, value);
  114. jedis.close();
  115. return length;
  116. }
  117. /**
  118. * 通过索引设置列表元素的值,当超出索引时会抛错。成功设置返回true
  119. * @param key
  120. * @param index 索引
  121. * @param value
  122. * @return boolean
  123. */
  124. public static boolean lset(String key, long index, String value){
  125. Jedis jedis = jedisPool.getResource();
  126. String statusCode = jedis.lset(key, index, value);
  127. jedis.close();
  128. if(SUCCESS_OK.equalsIgnoreCase(statusCode)){
  129. return true;
  130. }else{
  131. return false;
  132. }
  133. }
  134. /**
  135. * 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
  136. * @param key
  137. * @param start
  138. * <li>可以为负数(-1是列表的最后一个元素,-2是列表倒数第二的元素。)</li>
  139. * <li>如果start大于end,则返回一个空的列表,即列表被清空</li>
  140. * @param end
  141. * <li>可以为负数(-1是列表的最后一个元素,-2是列表倒数第二的元素。)</li>
  142. * <li>可以超出索引,不影响结果</li>
  143. * @return boolean
  144. */
  145. public static boolean ltrim(String key, long start, long end){
  146. Jedis jedis = jedisPool.getResource();
  147. String statusCode = jedis.ltrim(key, start, end);
  148. jedis.close();
  149. if(SUCCESS_OK.equalsIgnoreCase(statusCode)){
  150. return true;
  151. }else{
  152. return false;
  153. }
  154. }
  155. /**
  156. * 移出并获取列表的第一个元素,当列表不存在或者为空时,返回Null
  157. * @param key
  158. * @return String
  159. */
  160. public static String lpop(String key){
  161. Jedis jedis = jedisPool.getResource();
  162. String value = jedis.lpop(key);
  163. jedis.close();
  164. return value;
  165. }
  166. /**
  167. * 移除并获取列表最后一个元素,当列表不存在或者为空时,返回Null
  168. * @param key
  169. * @return String
  170. */
  171. public static String rpop(String key){
  172. Jedis jedis = jedisPool.getResource();
  173. String value = jedis.rpop(key);
  174. jedis.close();
  175. return value;
  176. }
  177. /**
  178. * 在列表中的尾部添加一个个值,返回列表的长度
  179. * @param key
  180. * @param value
  181. * @return Long
  182. */
  183. public static Long rpush(String key, String value){
  184. Jedis jedis = jedisPool.getResource();
  185. Long length = jedis.rpush(key, value);
  186. jedis.close();
  187. return length;
  188. }
  189. /**
  190. * 在列表中的尾部添加多个值,返回列表的长度
  191. * @param key
  192. * @param values
  193. * @return Long
  194. */
  195. public static Long rpush(String key, String[] values){
  196. Jedis jedis = jedisPool.getResource();
  197. Long length = jedis.rpush(key, values);
  198. jedis.close();
  199. return length;
  200. }
  201. /**
  202. * 仅当列表存在时,才会向列表中的尾部添加一个值,返回列表的长度
  203. * @param key
  204. * @param value
  205. * @return Long
  206. */
  207. public static Long rpushx(String key, String value){
  208. Jedis jedis = jedisPool.getResource();
  209. Long length = jedis.rpushx(key, value);
  210. jedis.close();
  211. return length;
  212. }
  213. /**
  214. * 移除列表的最后一个元素,并将该元素添加到另一个列表并返回
  215. * @param sourceKey 源列表的key,当源key不存在时,结果返回Null
  216. * @param targetKey 目标列表的key,当目标key不存在时,会自动创建新的
  217. * @return String
  218. */
  219. public static String rpopLpush(String sourceKey, String targetKey){
  220. Jedis jedis = jedisPool.getResource();
  221. String value = jedis.rpoplpush(sourceKey, targetKey);
  222. jedis.close();
  223. return value;
  224. }
  225. /**
  226. * 移出并获取列表的【第一个元素】, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
  227. * @param timeout 单位为秒
  228. * @param keys
  229. * <li>当有多个key时,只要某个key值的列表有内容,即马上返回,不再阻塞。</li>
  230. * <li>当所有key都没有内容或不存在时,则会阻塞,直到有值返回或者超时。</li>
  231. * <li>当超期时间到达时,keys列表仍然没有内容,则返回Null</li>
  232. * @return List<String>
  233. */
  234. public static List<String> blpop(int timeout, String... keys){
  235. Jedis jedis = jedisPool.getResource();
  236. List<String> values = jedis.blpop(timeout, keys);
  237. jedis.close();
  238. return values;
  239. }
  240. /**
  241. * 移出并获取列表的【最后一个元素】, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
  242. * @param timeout 单位为秒
  243. * @param keys
  244. * <li>当有多个key时,只要某个key值的列表有内容,即马上返回,不再阻塞。</li>
  245. * <li>当所有key都没有内容或不存在时,则会阻塞,直到有值返回或者超时。</li>
  246. * <li>当超期时间到达时,keys列表仍然没有内容,则返回Null</li>
  247. * @return List<String>
  248. */
  249. public static List<String> brpop(int timeout, String... keys){
  250. Jedis jedis = jedisPool.getResource();
  251. List<String> values = jedis.brpop(timeout, keys);
  252. jedis.close();
  253. return values;
  254. }
  255. /**
  256. * 从列表中弹出列表最后一个值,将弹出的元素插入到另外一个列表中并返回它;
  257. * 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
  258. * @param sourceKey 源列表的key,当源key不存在时,则会进行阻塞
  259. * @param targetKey 目标列表的key,当目标key不存在时,会自动创建新的
  260. * @param timeout 单位为秒
  261. * @return String
  262. */
  263. public static String brpopLpush(String sourceKey, String targetKey, int timeout){
  264. Jedis jedis = jedisPool.getResource();
  265. String value = jedis.brpoplpush(sourceKey, targetKey, timeout);
  266. jedis.close();
  267. return value;
  268. }

下载

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)

一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

时间: 2024-10-06 04:51:30

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

Java 借助poi操作Wold工具类

? Apache封装的POI组件对Excel,Wold的操作已经非常的丰富了,在项目上也会经常用到一些POI的基本操作 这里就简单的阐述POI操作Wold的基本工具类,代码还是有点粗造的,但是不影响使用. 这个类包含了一些对文本进行换行,加粗,倾斜,字体颜色,大小,首行缩进,添加边框等方法.分享给大家学习下: Apache POI的组件: ApachePOI包含用于处理MS-Office的所有OLE2复合文档的类和方法.该API的组件列表如下 - POIFS(不良混淆实现文件系统) - 此组件是

poi操作Excel工具类

在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完成的功能是:读取Excel.写入Excel.合并Excel的功能.

java常用工具类(java技术交流群57388149)

package com.itjh.javaUtil; import java.util.ArrayList; import java.util.List; /** * * String工具类. <br> * * @author 宋立君 * @date 2014年06月24日 */ public class StringUtil { private static final int INDEX_NOT_FOUND = -1; private static final String EMPTY =

导入导出封装的工具类 (一) 利用POI封装

对于导入导出各个项目中几乎都会用到,记得在高校平台中封装过导入导出这部分今天看了看是利用JXL封装的而经理说让我用POI写写导出,这两个导入导出框架是目前比较流程和常用的框架,有必要都了解一下. 写了写代码觉得导入导出这一块底层都是一样的,几乎所有的框架和别的牛人也好都是底层利用POI或JXL实现,比的是谁对这部分封装的好而且每个项目中对导入导出具体的细节是不同的,因此,有必要了解了解怎么样操作POI,学学使用它的API做导入导出也许第一步你封装的没有别人那么好,你也会收获很多了解他们封装的思路

Java字符串转16 进制工具类Hex.java

原文:Java字符串转16 进制工具类Hex.java 源代码下载地址:http://www.zuidaima.com/share/1550463378410496.htm Java 字符串转 16 进制工具类 Hex.java 实现 16进制 0xfecd .. 和 java 字符串之间的互转换! 如果做开发,通常用户登陆密码都会 mad5(salt + pwd) 然后再将 md 之后的数据 hex 一下. 这个工具类,就是实现此效果的. /* * */ package com.zuidaim

c语言中字符串操作的工具类

 1.编写头文件 #define _CRT_SECURE_NO_WARNINGS //#pragmawarning(disable:4996) #include <stdio.h> #include <stdlib.h> #include <string.h> struct CString { char *p;        //保存字符串首地址 int reallength; //实际长度 }; typedef struct CString mystring;//

【工具类】JAVA 以行为单位读取文件并比对

package test20140709; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * 以行为单位读取文件并比对,显示不同行 * @author fushihua-wb * @date 2014-7-11 */ pu

UrlUtils工具类,Java URL工具类,Java URL链接工具类

UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 2017年7月15日 http://www.cnblogs.com/fanshuyao/ Java代码   import java.util.Ha

Java日期工具类,Java时间工具类,Java时间格式化

Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright  蕃薯耀 2017年2月4日 15:03:27 星期六 http://www.cnblogs.co