我尝试使用以下命令修剪redis
队列中的记录。但不幸的是,如果列表中只有一个项目,则无法修剪。
ltrim key, -1, 0;
答案 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_index
和stop_index
都是列表的第一个(也是最后一个)元素的索引。您的命令与ltrim key 0 0
具有相同的效果。使用此命令,Redis保留列表的第一个元素(也是唯一的元素),列表不会被修剪。
顺便问一下,你要删除列表吗?如果您这样做,只需致电del key
。