Redis - List:链表
Redis - List:链表
1、list:链表 是简单的字符串列表,按照插入顺序排序,可以插入一个元素到列表的头部或者尾部
存放的是:单键多值
2、链表底层实现:双向链表,对头和尾的操作性能较高,通过下标索引操作中间的节点时性能较差,
一般是操作头部和尾部,能够实现简单的消息队列,push和pop
3、 对链表List的操作:
1、lpush key value1 value2:
插入数据到头部
2、rpush key value1 value2:
插入数据到尾部
3、lpop key :从头部取出key的值
4、rpop key :
从尾部取出key的值
5、lrange key start end:取出key的值,从start开始到end
start = 0:从开始第0位开始取值
end = -1:取值到最后一位
6、lpush操作:先放进去的值在后边,最后放进去的值在最前边
lpush k v1 v2 v3,取值后结果为:v3 v2 v1
7、rpush操作:先放进去的值在前边,最后放进去的值在最后边
rpush k v1 v2 v3,取值后结果为:v1 v2 v3
8、lpop key:
从左边取出值,每次取出1个值,值没了键名也没了
9、rpop key:
从右边取出值,每次取出1个值,值没了键名也没了
10、rpoplpush key1 key2:从key1列表的尾部取出1个值放k2列表的在头部,尾部取出值放在头部
比较神奇的操作,从第一个list的尾部取出值放在第二个list的头部
11、lindex key index:按照索引index获取key的值,从左到右取值
12、llen key:获取key列表的长度
13、linsert key oldValue newVlaue:
从oldvalue值的左边写入新的newValue值
14、lrem key n value:
从头部开始,删除key列表中的 n 个 value值
15、lset key index value:
将key列表中索引为index的值更新为 value值
4、链表List的数据结构
list的数据结构为 快速列表
1)list中的元素在较少的情况下,数据是存放在一块连续的内存中,并不是不连续的进行存储,这个 结构是ziplist,压缩列表
2)当list中的数据元素角度时,会存储为多个连续内存中,即存储在多个压缩列表中,然后再通过 prev、next指针将多个压缩列表连接起来,组成一个双向链表
5、
本文来自博客园,作者:alisleepy,转载请注明原文链接:https://www.cnblogs.com/alisleepy/p/15647483.html