Redis——List列表

Redis——List列表(二)

redis列表是一个字符链表,内部结构类似于Java的LinkedList。左边和右边都可以插入。如果键不存在,创建新的键;如果已经存在,添加新的内容。如果把键里面的值全部移除,则该键也会消失。列表最多可以存储2^32-1个元素,也就是40多亿。

原理:底层是一个“快速链表”(quicklist)的结构,在列表元素较少时,使用连续的内存存储成压缩列表ziplist。当数据量较多时,改成linklist,也就是将多个ziplist使用双向指针串起来使用,以减少内存的碎片化。

相关命令:

在使用list列表时,可以使用它实现数据结构里面的栈结构 和队列结构。接下来就分别看看两者如何实现。

首先我们应该知道的是list的存取操作,push(存),pop(取)、range(查看数据)。利用存取操作就可以实现栈和队列了。

1、栈结构:

lpush + list + value:从左侧存入数据,弹出时执行lpop从左侧弹出,即满足了栈先进后出的原理。

2、队列结构:

rpush + list + value:从右侧存入数据,弹出时执行lpop左侧弹出,即满足队列先进先出的原理。

3、查看数据:

lrange key start end:返回内的数据查看。

对list列表本身的操作命令:

1、llen + list :查看list列表的长度。

2、lindex + list + index :获取某一个位置的值,下标从0开始。

3、lrem + list + n + value :删除n个value的值。

4、ltrim + list + start + end:截取某个范围的数据,重新赋值给list。

5、linsert + list + before/after oldValue newValue:插入数据到某个元素位置的前后。

特殊位置:

lpushx + list + value :将数据插入到数据的头部。

rpushx + list + value :将数据插入到数据的尾部。

6、lset + list + index + value :更改指定位置的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何怀逸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值