redis学习笔记(4)-尊龙游戏旗舰厅官网
尊龙游戏旗舰厅官网
收集整理的这篇文章主要介绍了
redis学习笔记(4)-list
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
package cn.com;import java.util.list;import redis.clients.jedis.jedis;
import redis.clients.jedis.binaryclient.list_position;public class redis_list {public static jedis redis = new jedis("localhost", 6379);// 连接redis/*** 返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。* */public static void lrange(){redis.flushdb();//清除数据/**初始化数据*/redis.lpush("languages", "english","chain");redis.lpush("languages", "english"); /**取数据*/list list=redis.lrange("languages", 0, -1);for(string s:list){system.out.println("s:" s);}}/*** 将一个或多个值 value 插入到列表 key 的表头* 如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头:* 如果 key 不存在,一个空列表会被创建并执行 lpush 操作。* 当 key 存在但不是列表类型时,返回一个错误。* */public static void lpush(){redis.flushdb();//清除数据redis.lpush("languages", "english","chain");redis.lpush("languages", "english");//加入重复元素redis.lpush("languages", "1","2","3");list list=redis.lrange("languages", 0, -1);for(string s:list){system.out.println("s:" s);}}/*** lpushx key value* 将值 value 插入到列表 key 的表头,当且仅当 key 存在并且是一个列表。* 和 lpush 命令相反,当 key 不存在时, lpushx 命令什么也不做。* */public static void lpushx(){redis.flushdb();//清除数据redis.lpushx("languages", "english");list list=redis.lrange("languages", 0, -1);for(string s:list){system.out.println("s:" s);}}/*** rpush key value [value ...]* 将一个或多个值 value 插入到列表 key 的表尾(最右边)。* 如果 key 不存在,一个空列表会被创建并执行 rpush 操作。* 当 key 存在但不是列表类型时,返回一个错误。* */public static void rpush(){redis.flushdb();//清除数据redis.rpush("languages", "english","chain");redis.rpush("languages", "english");//加入重复元素redis.rpush("languages", "1","2","3");//加入重复元素list list=redis.lrange("languages", 0, -1);for(string s:list){system.out.println("s:" s);}}/*** lpushx key value* 将值 value 插入到列表 key 的尾,当且仅当 key 存在并且是一个列表。* 和 lpush 命令相反,当 key 不存在时, lpushx 命令什么也不做。* */public static void rpushx(){redis.flushdb();//清除数据redis.rpush("languages", "1","2","3");//加入重复元素redis.rpushx("languages", "english");list list=redis.lrange("languages", 0, -1);for(string s:list){system.out.println("s:" s);}}/*** 移除并返回列表 key 的头元素。* 当 key 不存在时,返回 nil 。* */public static void lpop(){redis.flushdb();//清除数据redis.lpush("languages", "1","2","3","4","5");string str=redis.lpop("languages");list list=redis.lrange("languages", 0, -1);system.out.println("被移除的元素:" str);system.out.println("剩下的元素列表:");for(string s:list){system.out.print("" s " ");}}/*** 移除并返回列表 key 的尾元素。* 当 key 不存在时,返回 nil 。* */public static void rpop(){redis.flushdb();//清除数据redis.lpush("languages", "1","2","3","4","5");string str=redis.rpop("languages");list list=redis.lrange("languages", 0, -1);system.out.println("被移除的元素:" str);system.out.println("剩下的元素列表:");for(string s:list){system.out.print("" s " ");}}/*** 如果给定 key 内至少有一个非空列表,那么弹出遇到的第一个非空列表的头元素,* 并和被弹出元素所属的列表的名字一起,组成结果返回给调用者* */public static void blpop(){redis.flushdb();//清除数据//redis.lpush("languages", "a","b","c","d","e");//初始化数据redis.lpush("base", "a","b","c","d");//初始化数据list list=redis.blpop(1000,"base");for(string s:list){system.out.println(s " ");}list list2=redis.lrange("base", 0, -1);for(string s:list2){system.out.println("剩余" s " ");}}/*** 如果给定 key 内至少有一个非空列表,那么弹出遇到的第一个非空列表的尾元素,* 并和被弹出元素所属的列表的名字一起,组成结果返回给调用者* */public static void brpop(){redis.flushdb();//清除数据redis.lpush("base", "a","b","c","d");//初始化数据list list=redis.brpop(1000,"base");for(string s:list){system.out.println(s " ");}list list2=redis.lrange("base", 0, -1);for(string s:list2){system.out.println("剩余" s " ");}}/*** 从头部弹出一个元素,将弹出的数据放入新的数组中 与方法 (rpoplpush)相同使用* 当列表 source 为空时, brpoplpush 命令将阻塞连接,直到等待超时,或有另一个客户端对 source 执行 lpush 或 rpush 命令为止。* 超时参数 timeout 接受一个以秒为单位的数字作为值。超时参数设为 0 表示阻塞时间可以无限期延长(block indefinitely) 。* */public static void brpoplpush(){redis.flushdb();//清除数据redis.lpush("base", "a","b","c","d");//初始化数据string s=redis.brpoplpush("base", "dest",0);system.out.println("s:" s);list list=redis.lrange("base", 0, -1);for(string str:list){system.out.println("base list" str " ");}list list1=redis.lrange("dest", 0, -1);for(string str:list1){system.out.println("dest list:" str " ");}}/*** 从头部弹出一个元素,将弹出的数据放入新的数组中* */public static void rpoplpush(){redis.flushdb();//清除数据redis.lpush("base", "a","b","c","d");//初始化数据string s=redis.rpoplpush("base", "dest");system.out.println("弹出的元素:" s);list list=redis.lrange("base", 0, -1);for(string str:list){system.out.println("base list" str " ");}list list1=redis.lrange("dest", 0, -1);for(string str:list1){system.out.println("dest list:" str " ");}}/*** lrem key count value* 根据参数 count 的值,移除列表中与参数 value 相等的元素。* count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。* count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。* count = 0 : 移除表中所有与 value 相等的值。* */public static void lrem(){redis.flushdb();//清除数据redis.lpush("base", "a","b","c","d","e","f","g","h");//初始化数据long index=redis.lrem("base", 0, "a");//移除与 集合里面有a的元素system.out.println(index);list list=redis.lrange("base", 0, -1);system.out.println("========剩余元素==========");for(string str:list){system.out.println( str " ");}}/*** lset key index value*将列表 key 下标为 index 的元素的值设置为 value 。*当 index 参数超出范围,或对一个空列表( key 不存在)进行 lset 时,返回一个错误。* */public static void lset(){redis.flushdb();//清除数据redis.lpush("base", "a","b","c","d","e","f","g","h");//初始化数据redis.lset("base", 6, "2b");//将b元素设置为2blist list=redis.lrange("base", 0, -1);for(string s:list){system.out.println(s);}}/*** 让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。* 举个例子,执行命令 ltrim list 4 6 ,表示只保留列表 list 的4 到 6 元素,其余元素全部删除。* */public static void ltrim(){redis.flushdb();//清除数据string [] s=new string[]{"a","b","c","d","e","f","g","h"};redis.lpush("base", s);//初始化数据redis.ltrim("base", 4, 6);//值保留b,c,d 对应的索引是4,5,6 多有被保留下来list list=redis.lrange("base", 0, -1);for(string str:list){system.out.println(str); }}/*** 返回列表 key 的长度。* 如果 key 不存在,则 key 被解释为一个空列表,返回 0 .* 如果 key 不是列表类型,返回一个错误* */public static void llen(){redis.flushdb();//清除数据redis.lpush("base", "a","b","c","d","e","f","g","h");//初始化数据long length=redis.llen("base");system.out.println("长度:" length);}/*** 返回列表 key 中,下标为 index 的元素。* 下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。* 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。* 如果 key 不是列表类型,返回一个错误。* */public static void lindex(){redis.flushdb();//清除数据redis.lpush("base", "a","b","c","d","e","f","g","h");//初始化数据string s=redis.lindex("base", 2);system.out.println(s);}/*** linsert key before|after pivot value* 将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。* 当 pivot 不存在于列表 key 时,不执行任何操作。pivot 指的数组中的元素* 当 key 不存在时, key 被视为空列表,不执行任何操作。* 如果 key 不是列表类型,返回一个错误。* */public static void linsert(){redis.flushdb();//清除数据redis.lpush("base", "a","b","c","d","e","f","g","h");//初始化数据redis.linsert("base", list_position.before, "b", "2b");//在b 之前插入2b//redis.linsert("base", list_position.after, "b", "2b");//在b 之后插入2blist list=redis.lrange("base", 0, -1);for(string str:list){system.out.println(str); }}public static void main(string [] args){linsert();}
}
转载于:https://www.cnblogs.com/zuolun2017/p/5607910.html
总结
以上是尊龙游戏旗舰厅官网为你收集整理的redis学习笔记(4)-list的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: android开发之如何保证servic
- 下一篇: 【技术干货】浏览器工作原理和常见web攻