【快学springboot】14.操作redis之list

栏目: Java · 发布时间: 5年前

内容简介:之前讲解了springboot(StringRedisTemplate)操作redis的string数据结构,这篇文章将会讲解list数据结构下图列出了redis list数据结构所具有的方法RedisTemplate提供的操作redis的方法列表如下:

之前讲解了springboot(StringRedisTemplate)操作 redis 的string数据结构,这篇文章将会讲解list数据结构

list数据结构具有的操作

下图列出了redis list数据结构所具有的方法

【快学springboot】14.操作redis之list

StringRedisTemplate提供的方法

RedisTemplate提供的操作redis的方法列表如下:

【快学springboot】14.操作redis之list

下面,我们挑一些常用的方法作为实例讲解,其它方法,可以参考API说明即可。

range

现在redis中有一个list,其key为:happyjava:list,并且有三个值,如下:

【快学springboot】14.操作redis之list

range(K key, long start, long end)方法,是获取list指定范围的内容

start下标从零开始。如下,获取第二个到第三个的元素:

@Test
public void testList() {
 List<String> list = redisTemplate.opsForList().range("happyjava:list", 1, 2);
 assert list != null;
 list.forEach(System.out::println);
}
复制代码

输出结果:

blog.happyjava.cn
​
www.happyjava.cn
复制代码

size(K key)

获得list的大小

@Test
public void testSize() {
 Long size = redisTemplate.opsForList().size("happyjava:list");
 System.out.println(size);
}
复制代码

输出结果:

【快学springboot】14.操作redis之list

leftPush(K key, V value)

该方法标识从list的左边(上边,或者说list的头部)压入数据。如果不存在该key,则会创建该key。

@Test
public void testLeftPush() {
 redisTemplate.opsForList().leftPush("happyjava:list", "new happyjava");
}
复制代码

执行后,去查看redis中的数据:

【快学springboot】14.操作redis之list

leftPushAll

有两个重载的方法,分别为不定参数:leftPushAll(K key, V... values); ,

集合参数:leftPushAll(K key, Collection values)

不定参数:

@Test
public void testLeftPushAll() {
 redisTemplate.opsForList().leftPushAll("happyjava:list","apple","happy");
}
复制代码

执行之后查看数据:

【快学springboot】14.操作redis之list

集合参数:

@Test
public void testLeftPushAll() {
// redisTemplate.opsForList().leftPushAll("happyjava:list","apple","happy");
 redisTemplate.opsForList().leftPushAll("happyjava:list", Arrays.asList("new happy1", "new happy2"));
}
复制代码

执行之后查看数据:

【快学springboot】14.操作redis之list

rightPush(K key, V value)

从list的尾部压入数据

@Test
public void testRightPush() {
 redisTemplate.opsForList().rightPush("happyjava:list","java");
}
复制代码

执行之后查看redis数据:

【快学springboot】14.操作redis之list

rightPushAll

该方法与leftPushAll类是,一样有两个重载的方法,如下:

【快学springboot】14.操作redis之list

这里就不做过多的介绍了。

set(K key, long index, V value)方法

可以直接设置list中某个下标的值,index从0开始

@Test
public void testSet() {
 redisTemplate.opsForList().set("happyjava:list",1,"test set");
}
复制代码

执行之后查看redis

remove(K key, long count, Object value)方法

删除某个值,删除count个,从头开始删除

现在redis中的数据如下:

【快学springboot】14.操作redis之list

执行一下代码:

@Test
public void testRemove() {
 redisTemplate.opsForList().remove("happyjava:list",2,"happy");
}
复制代码

执行之后查看数据:

【快学springboot】14.操作redis之list

index(K key, long index)方法

返回index(从0开始)下标的元素。现在redis数据如下:

【快学springboot】14.操作redis之list
@Test
public void testIndex() {
 String value = redisTemplate.opsForList().index("happyjava:list", 1);
 System.out.println(value);
}
复制代码

执行结果如下:

【快学springboot】14.操作redis之list

leftPop

有两个重载的方法:

V leftPop(K key);

V leftPop(K key, long timeout, TimeUnit unit);

此方法会弹出list头部的元素(弹出后就在list中删除),跟栈一样,重载的那个方法,如果list不存在数据,则会阻塞住,等有数据了就会返回(最长阻塞时间就是设置的超时时间)。该方法对应到redis的操作是BLPOP(blocking left pop)


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据结构 Python语言描述

数据结构 Python语言描述

[美] Kenneth A. Lambert 兰伯特 / 李军 / 人民邮电出版社 / 2017-12-1 / CNY 69.00

在计算机科学中,数据结构是一门进阶性课程,概念抽象,难度较大。Python语言的语法简单,交互性强。用Python来讲解数据结构等主题,比C语言等实现起来更为容易,更为清晰。 《数据结构 Python语言描述》第1章简单介绍了Python语言的基础知识和特性。第2章到第4章对抽象数据类型、数据结构、复杂度分析、数组和线性链表结构进行了详细介绍,第5章和第6章重点介绍了面向对象设计的相关知识、......一起来看看 《数据结构 Python语言描述》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具