当Redis列表只有一条记录时,无法进行ltrim

时间:2016-11-08 13:29:13

标签: node.js database redis in-memory-database

我尝试使用以下命令修剪redis队列中的记录。但不幸的是,如果列表中只有一个项目,则无法修剪。

ltrim key, -1, 0;

1 个答案:

答案 0 :(得分:1)

对于ltrim key start_index stop_index命令,索引基于零。 0是第一个元素的索引,-1是最后一个元素的索引。如果start_index大于stop_index,则Redis会清除列表,即删除key

根据上述定义,让我们来看看你的命令:

ltrim key -1 0

start_index-1,即最后一个元素的索引,stop_index是0,即第一个元素的索引。

如果列表包含多个元素,则start_index大于stop_index。在这种情况下,列表/ key将被删除。但是,如果列表中只有1个元素,则start_indexstop_index都是列表的第一个(也是最后一个)元素的索引。您的命令与ltrim key 0 0具有相同的效果。使用此命令,Redis保留列表的第一个元素(也是唯一的元素),列表不会被修剪

顺便问一下,你要删除列表吗?如果您这样做,只需致电del key