以前讲解了springboot(StringRedisTemplate)操做redis的string数据结构,这篇文章将会讲解list数据结构java
下图列出了redis list数据结构所具备的方法redis
RedisTemplate提供的操做redis的方法列表以下:spring
下面,咱们挑一些经常使用的方法做为实例讲解,其它方法,能够参考API说明便可。springboot
如今redis中有一个list,其key为:happyjava:list,而且有三个值,以下:bash
range(K key, long start, long end)方法,是获取list指定范围的内容数据结构
start下标从零开始。以下,获取第二个到第三个的元素:app
@Test
public void testList() {
List<String> list = redisTemplate.opsForList().range("happyjava:list", 1, 2);
assert list != null;
list.forEach(System.out::println);
}
复制代码
输出结果:spa
blog.happyjava.cn
www.happyjava.cn
复制代码
得到list的大小3d
@Test
public void testSize() {
Long size = redisTemplate.opsForList().size("happyjava:list");
System.out.println(size);
}
复制代码
输出结果:code
该方法标识从list的左边(上边,或者说list的头部)压入数据。若是不存在该key,则会建立该key。
@Test
public void testLeftPush() {
redisTemplate.opsForList().leftPush("happyjava:list", "new happyjava");
}
复制代码
执行后,去查看redis中的数据:
有两个重载的方法,分别为不定参数:leftPushAll(K key, V... values); ,
集合参数:leftPushAll(K key, Collection values)
不定参数:
@Test
public void testLeftPushAll() {
redisTemplate.opsForList().leftPushAll("happyjava:list","apple","happy");
}
复制代码
执行以后查看数据:
集合参数:
@Test
public void testLeftPushAll() {
// redisTemplate.opsForList().leftPushAll("happyjava:list","apple","happy");
redisTemplate.opsForList().leftPushAll("happyjava:list", Arrays.asList("new happy1", "new happy2"));
}
复制代码
执行以后查看数据:
从list的尾部压入数据
@Test
public void testRightPush() {
redisTemplate.opsForList().rightPush("happyjava:list","java");
}
复制代码
执行以后查看redis数据:
该方法与leftPushAll类是,同样有两个重载的方法,以下:
这里就不作过多的介绍了。
能够直接设置list中某个下标的值,index从0开始
@Test
public void testSet() {
redisTemplate.opsForList().set("happyjava:list",1,"test set");
}
复制代码
执行以后查看redis
删除某个值,删除count个,从头开始删除
如今redis中的数据以下:
执行一下代码:
@Test
public void testRemove() {
redisTemplate.opsForList().remove("happyjava:list",2,"happy");
}
复制代码
执行以后查看数据:
返回index(从0开始)下标的元素。如今redis数据以下:
@Test
public void testIndex() {
String value = redisTemplate.opsForList().index("happyjava:list", 1);
System.out.println(value);
}
复制代码
执行结果以下:
有两个重载的方法:
V leftPop(K key);
V leftPop(K key, long timeout, TimeUnit unit);
此方法会弹出list头部的元素(弹出后就在list中删除),跟栈同样,重载的那个方法,若是list不存在数据,则会阻塞住,等有数据了就会返回(最长阻塞时间就是设置的超时时间)。该方法对应到redis的操做是BLPOP(blocking left pop)
与leftPop相似,只是从list尾部弹出数据
本文讲解了springboot操做redis的list数据结构,大部分方法都已经作了讲解和演示。list也是redis中很是经常使用的数据结构,之后还会继续讲解redis其它的数据结构。