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、

posted @ 2021-12-05 22:38  alisleepy  阅读(95)  评论(0编辑  收藏  举报