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列表】如果您觉得有帮助的话,记得 评论,关注,转发,收藏,双击么么哒。

    推荐阅读