博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis操作List工具类封装,Java Redis List命令封装
阅读量:5949 次
发布时间:2019-06-19

本文共 7521 字,大约阅读时间需要 25 分钟。

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
*/ public static List
lrange(String key, long start, long end){ Jedis jedis = jedisPool.getResource(); List
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,标识,表示动作或者查找方向 *
  • 当count=0时,移除所有匹配的元素;
  • *
  • 当count为负数时,移除方向是从尾到头;
  • *
  • 当count为正数时,移除方向是从头到尾;
  • * @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 *
  • 可以为负数(-1是列表的最后一个元素,-2是列表倒数第二的元素。)
  • *
  • 如果start大于end,则返回一个空的列表,即列表被清空
  • * @param end *
  • 可以为负数(-1是列表的最后一个元素,-2是列表倒数第二的元素。)
  • *
  • 可以超出索引,不影响结果
  • * @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 *
  • 当有多个key时,只要某个key值的列表有内容,即马上返回,不再阻塞。
  • *
  • 当所有key都没有内容或不存在时,则会阻塞,直到有值返回或者超时。
  • *
  • 当超期时间到达时,keys列表仍然没有内容,则返回Null
  • * @return List
    */ public static List
    blpop(int timeout, String... keys){ Jedis jedis = jedisPool.getResource(); List
    values = jedis.blpop(timeout, keys); jedis.close(); return values; } /** * 移出并获取列表的【最后一个元素】, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。 * @param timeout 单位为秒 * @param keys *
  • 当有多个key时,只要某个key值的列表有内容,即马上返回,不再阻塞。
  • *
  • 当所有key都没有内容或不存在时,则会阻塞,直到有值返回或者超时。
  • *
  • 当超期时间到达时,keys列表仍然没有内容,则返回Null
  • * @return List
    */ public static List
    brpop(int timeout, String... keys){ Jedis jedis = jedisPool.getResource(); List
    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/

    转载于:https://www.cnblogs.com/fanshuyao/p/6227095.html

    你可能感兴趣的文章
    内联元素的padding,margin,border等不起作用的原因
    查看>>
    事务与并发控制
    查看>>
    初识shell文本处理工具之gawk-sed
    查看>>
    也来谈谈RPC
    查看>>
    Cisco ASA SSL ×××远程访问设置 二
    查看>>
    构建镜像 - 每天5分钟玩转容器技术(12)
    查看>>
    平衡二叉树
    查看>>
    centos7 中 systemd systemctl管理服务的命令
    查看>>
    企业级办公室iptables防火墙应用案例
    查看>>
    Ubuntu python 安装使用sqlalchemy
    查看>>
    HAProxy 之 ACL介绍和使用
    查看>>
    OEL 6.4中安装Oracle 11g_R2_64bit
    查看>>
    vSphere 5 中的多网卡 vMotion
    查看>>
    Python实例:向量基本操作
    查看>>
    7月第一周.COM增近8万 ×××域名.XXX仅增14个
    查看>>
    12月第3周在线视频网站覆盖数排名TOP15:优酷夺冠
    查看>>
    全球域名注册商(国际域名)保有量及市场份额(6月6日)
    查看>>
    Linux常用的命令和脚本
    查看>>
    Linux curl命令参数详解
    查看>>
    Asterisk的MusicOnHold设置(1.8)
    查看>>