4、Redis中对List类型的操作命令

写在前面的话:读书破万卷,编码如有神
--------------------------------------------------------------------

 

--------------------------------------------------------------------

1、对List类型的操作命令

1.1、lpush、rpush:添加值,格式是:lpush list的key item项的值(值可以有多个)

操作如下:(注意看从左、从右添加值后,元素在list中的位置)

 

Java代码示例如下:

 1 import redis.clients.jedis.Jedis;
 2 
 3 /**
 4  * redis中对于List类型的: rpush、lpush 操作示例
 5  */
 6 public class List_rpush_lpush_operation {
 7     public static void main(String[] args) {
 8         Jedis jedis = new Jedis("127.0.0.1",6379);
 9         /**
10          * 示例1: 相当于执行 rpush mylist v1 v2 v3
11          */
12         Long rpush = jedis.rpush("mylist", "v1", "v2", "v3");
13         System.out.println("rpush = " + rpush);
14         System.out.println("======================");
15 
16         /**
17          * 示例2: 相当于执行 lpush mylist v1 v2 v3
18          */
19         Long lpush = jedis.lpush("mylist", "v11", "v22", "v33");
20         System.out.println("lpush = " + lpush);
21         System.out.println("======================");
22     }
23 }

1.2、lrange:按索引范围获取值,格式是:lrange list的key 起始索引 终止索引 (-1表示最后一个索引)

操作如下:

Java代码示例如下: 

 1 import redis.clients.jedis.Jedis;
 2 
 3 import java.util.List;
 4 
 5 /**
 6  * redis中对于List类型的: lrange 操作示例
 7  */
 8 public class List_lrange_operation {
 9     public static void main(String[] args) {
10         Jedis jedis = new Jedis("127.0.0.1",6379);
11         /**
12          * 示例1: 相当于执行 lrange mylist 0 -1
13          */
14         List<String> mylist = jedis.lrange("mylist", 0, -1);
15         mylist.stream().forEach(System.out::println);
16 
17         System.out.println("======================");
18         List<String> mylist1 = jedis.lrange("mylist", 1, 2);
19         mylist1.stream().forEach(System.out::println);
20 
21     }
22 }

1.3、lindex:获取指定索引的值,格式是:lindex list的key 索引号

操作如下:

Java代码示例如下:

 1 import redis.clients.jedis.Jedis;
 2 
 3 import java.util.List;
 4 
 5 /**
 6  * redis中对于List类型的: lindex 操作示例
 7  */
 8 public class List_lindex_operation {
 9     public static void main(String[] args) {
10         Jedis jedis = new Jedis("127.0.0.1",6379);
11         /**
12          * 示例1: 相当于执行 lrange mylist 0 -1
13          */
14         List<String> mylist = jedis.lrange("mylist", 0, -1);
15         mylist.stream().forEach(System.out::println);
16 
17         /**
18          * 示例2: 相当于执行 lindex mylist 0
19          */
20         String mylist1 = jedis.lindex("mylist", 0);
21         System.out.println("mylist1 = " + mylist1);
22 
23         /**
24          * 示例4: 相当于执行 lindex mylist 4
25          */
26         String mylist2 = jedis.lindex("mylist", 4);
27         System.out.println("mylist2 = " + mylist2);
28     }
29 }

1.4、lpop、rpop:弹出值,格式是:lpop list的key

操作如下:

Java代码示例如下:

 1 import redis.clients.jedis.Jedis;
 2 
 3 /**
 4  * redis中对于List类型的: lpop、rpop 操作示例
 5  */
 6 public class List_lpop_rpop_operation {
 7     public static void main(String[] args) {
 8         Jedis jedis = new Jedis("127.0.0.1",6379);
 9         /**
10          * 示例1: 相当于执行 lpop mylist
11          */
12         String lpop = jedis.lpop("mylist");
13         System.out.println("lpop = " + lpop);
14         
15         /**
16          * 示例2: 相当于执行 rpop mylist
17          */
18         String rpop = jedis.rpop("mylist");
19         System.out.println("rpop = " + rpop);
20     }
21 }

1.5、llen:获取list中元素的个数,格式是:llen list的key 

操作如下:

Java代码示例如下:

 1 import redis.clients.jedis.Jedis;
 2 
 3 /**
 4  * redis中对于List类型的: llen 操作示例
 5  */
 6 public class List_llen_operation {
 7     public static void main(String[] args) {
 8         Jedis jedis = new Jedis("127.0.0.1",6379);
 9         /**
10          * 示例1: 相当于执行 llen mylist
11          */
12         Long llen = jedis.llen("mylist");
13         System.out.println("llen = " + llen);
14     }
15 }

1.6、lrem:删除元素,格式是:lrem list的key 数量 item项的值,(数量可正负,表示从左或从右删除;如果数量为0,表示删除全部与给定值相符的项)

操作如下:

Java代码示例如下:

 1 import redis.clients.jedis.Jedis;
 2 
 3 /**
 4  * redis中对于List类型的: lrem 操作示例
 5  */
 6 public class List_lrem_operation {
 7     public static void main(String[] args) {
 8         Jedis jedis = new Jedis("127.0.0.1",6379);
 9         /**
10          * 示例1: 相当于执行 lrem mylist 0 a
11          */
12         Long lrem = jedis.lrem("mylist",0,"a");
13         System.out.println("lrem = " + lrem);
14     }
15 }

1.7、ltrim:保留指定索引区间的元素,格式是:ltrim list的key 起始索引 结束索引

操作如下:

Java代码示例如下:

 1 import redis.clients.jedis.Jedis;
 2 
 3 /**
 4  * redis中对于List类型的: ltrim 操作示例
 5  */
 6 public class List_ltrim_operation {
 7     public static void main(String[] args) {
 8         Jedis jedis = new Jedis("127.0.0.1",6379);
 9         /**
10          * 示例1: 相当于执行 ltrim mylist 0 1
11          */
12         String ltrim = jedis.ltrim("mylist",0,1);
13         System.out.println("ltrim = " + ltrim);
14     }
15 }

1.8、blpop、brpop:弹出值,格式是:blpop list的key值 过期时间。(key可以是多个,如果没有值,会一直等到有值,直到过期)

操作如下:

Java代码示例如下:

 1 import redis.clients.jedis.Jedis;
 2 
 3 import java.util.List;
 4 
 5 /**
 6  * redis中对于List类型的: blpop、brpop 操作示例
 7  */
 8 public class List_blpop_brpop_operation {
 9     public static void main(String[] args) {
10         Jedis jedis = new Jedis("127.0.0.1",6379);
11         /**
12          * 示例1: 相当于执行 blpop mylist 5
13          */
14         List<String> mylist = jedis.blpop(5, "mylist");
15         mylist.stream().forEach(System.out::println);
16 
17         System.out.println("===========");
18         /**
19          * 示例2: 相当于执行 ltrim mylist 0 1
20          */
21         List<String> mylist2 = jedis.brpop(5, "mylist");
22         mylist2.stream().forEach(System.out::println);
23 
24     }
25 }

1.9、rpoplpush:将元素从一个列表转移到另外一个列表,格式是:rpoplpush 源list的key值 目的list的key值

操作如下:

Java代码示例如下:

 1 import redis.clients.jedis.Jedis;
 2 
 3 /**
 4  * redis中对于List类型的: rpoplpush、brpoplpush 操作示例
 5  * rpoplpush:将元素从一个列表转移到另外一个列表,格式是:rpoplpush 源list的key值 目的list的key值
 6  * brpoplpush:将元素从一个列表转移到另外一个列表,格式是:brpoplpush 源list的key值 目的list的key值 过期时间
 7  */
 8 public class List_rpoplpush_brpoplpush_operation {
 9     public static void main(String[] args) {
10         Jedis jedis = new Jedis("127.0.0.1",6379);
11         /**
12          * 示例1: 相当于执行 rpoplpush mylist mylist2
13          */
14         String rpoplpush = jedis.rpoplpush("mylist", "mylist2");
15         System.out.println("rpoplpush = " + rpoplpush);
16 
17         /**
18          * 示例2: 相当于执行 brpoplpush mylist mylist2  4
19          */
20         String brpoplpush = jedis.brpoplpush("mylist", "mylist2",4);
21         System.out.println("brpoplpush = " + brpoplpush);
22     }
23 }

1.10、brpoplpush:将元素从一个列表转移到另外一个列表,格式是:brpoplpush 源list的key值 目的list的key值 过期时间

操作如下:

Java代码示例如下:

  见上一个示例。

1.11、lset:设置指定索引的值,格式是:lset list的key 索引 新的值

操作如下:

Java代码示例如下:

 1 import redis.clients.jedis.Jedis;
 2 
 3 /**
 4  * redis中对于List类型的: lset操作示例
 5  * lset:设置指定索引的值,格式是:lset list的key 索引 新的值
 6  */
 7 public class List_lset_operation {
 8 
 9     public static void main(String[] args) {
10         Jedis jedis = new Jedis("127.0.0.1",6379);
11         /**
12          * 示例1: 相当于执行 lset mylist2 1 55
13          */
14         String lset = jedis.lset("mylist2", 1L, "55");
15         System.out.println("lset = " + lset);
16     }
17 }

1.12、linsert:插入元素,格式是:linsert list的key before|after 定位查找的值 添加的值

操作如下:

Java代码示例如下:

 1 import redis.clients.jedis.BinaryClient;
 2 import redis.clients.jedis.Jedis;
 3 
 4 /**
 5  * redis中对于List类型的: linsert操作示例
 6  * linsert:插入元素,格式是:linsert list的key before|after 定位查找的值 添加的值
 7  */
 8 public class List_linsert_operation {
 9     public static void main(String[] args) {
10         Jedis jedis = new Jedis("127.0.0.1",6379);
11 
12         /**
13          * 示例1: 相当于执行 linsert mylist2 after 3 66
14          */
15         Long linsert = jedis.linsert("mylist2", BinaryClient.LIST_POSITION.AFTER, "3", "66");
16         System.out.println("linsert = " + linsert);
17     }
18 }

 

 

posted @ 2018-07-11 07:35  火爆泡菜  阅读(22836)  评论(0编辑  收藏  举报