Redis可以通过LINDEX key index获取list中的特定值, 但无法直接删除特定索引下的值.
LSET与LREM结合删除list中特定索引的值
两步:
- 先用
LSET在指定索引位置上设置特殊值:LSET key index value在指定索引位置的值替换为value - 再用
LREM删除该特殊值:LREM key n value, 从左边删除n个value
例如删除list1索引3对应的在值
LSET list1 3 del
LREM list1 1 del补充
在Redis中, list是双向链表有两种索引:
- 正向索引:
0, 1, 2, 3, ... - 逆向索引:
-1, -2, -3, ...
与删除的相关的操作有:
LPOP / RPOP key: 从左边/右边弹出一个值LREM key n value: 从左边删除n个valueLTRIM key begin-index, end-index: 仅保留指定区间的元素
Redis的区间都是闭区间, [begin-index, end-index]
本文介绍如何使用Redis的LSET和LREM命令组合,实现对List中特定索引位置的值进行删除,通过设置特殊值再删除的方法,解决Redis无法直接删除特定索引下值的问题。同时,文章还补充了Redis中list的索引方式及其它与删除相关的操作。
173万+

被折叠的 条评论
为什么被折叠?



