NO.2|NO.2 Redis基本数据结构之 list列表
list =java中的linkedList,它是个链表不是数组。链表的特点就是插入快,查询慢。
用途:常用于异步队列使用。将需要延后处理的任务序列化为字符串放入redis中,另一个线程从这个队列轮询数据进行处理。
右进左出:队列,rpush , lpop
127.0.0.1:6379> rpush name a b c
(integer) 3
127.0.0.1:6379> llen name # 查看长度
(integer) 3
127.0.0.1:6379> lpop name
"a"
127.0.0.1:6379> lpop name
"b"
127.0.0.1:6379> lpop name
"c"
右进右出:栈 rpush rpop
127.0.0.1:6379> rpush name a b c
(integer) 3
127.0.0.1:6379> rpop name
"c"
127.0.0.1:6379> rpop name
"b"
127.0.0.1:6379> rpop name
"a"
查询 lindex ,ltrim ,lrange ,这几种都是慢查询 lindex 相当于get(index)方法,需要遍历列表,性能随着参数index增大而变差。
ltrim 跟的两个参数start_index和end_index定义了一个区间,在这个区间内的值,ltrim 要保留,区间之外统统砍掉。我们可以通过ltrim来实现一个定长的链表,这一点非常有用。
index 可以为负数,index=-1表示倒数第一个元素,同样index=-2表示倒数第二个元素。
127.0.0.1:6379> rpush name a b c
(integer) 3
127.0.0.1:6379> lindex name 1
"b"
127.0.0.1:6379> lrange name 0 -1 #获取所有元素
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> ltrim name 1 -1 #保留元素
OK
127.0.0.1:6379> lrange name 0 -1 # 查看index =0已经去掉了
1) "b"
2) "c"
127.0.0.1:6379> ltrim name 1 0# 1-0之间没有长度,等于清空了列表
OK
127.0.0.1:6379> lrange name 0 -1
(empty list or set)
都是一些日常总结,
【NO.2|NO.2 Redis基本数据结构之 list列表】如果您觉得有帮助的话,记得 评论,关注,转发,收藏,双击么么哒。
推荐阅读
- 做一件事情的基本原理是什么()
- dubbo基本认识
- HTML基础--基本概念--跟着李南江学编程
- 7、前端--jQuery简介、基本选择器、基本筛选器、属性选择器、表单选择器、筛选器方法、节点操作、绑定事件
- springboot使用redis缓存
- 一般模型化关系——从模型是什么到如何起作用的基本答案
- canvas(一)基本用法
- 带你了解类型系统以及flow和typescript的基本使用
- (1)redis集群原理及搭建与使用(1)
- MySQL数据库的基本操作