LTRIM
LTRIM
LTRIM key start stop
- Доступно с версии:
- 1.0.0
- Сложность по времени:
- O(N), где N — количество элементов, подлежащих удалению.
- Категории ACL:
-
@write,@list,@slow,
Усекает существующий список, оставляя только указанный диапазон элементов. И start, и stop являются индексами с нуля, где 0 — первый элемент списка (голова), 1 — следующий элемент и так далее.
Например: LTRIM foobar 0 2 изменяет список, хранящийся по адресу foobar, так, что останутся только первые три элемента списка.
start и end также могут быть отрицательными числами, обозначающими смещения от конца списка, где -1 — последний элемент списка, -2 — предпоследний и так далее.
Индексы за пределами допустимого диапазона не вызовут ошибку: если start больше конца списка или start > end, результатом будет пустой список (что приводит к удалению key). Если end больше конца списка, Redis будет рассматривать его как последний элемент списка.
Частое применение LTRIM — вместе с LPUSH / RPUSH. Например:
LPUSH mylist someelement LTRIM mylist 0 99
Эта пара команд добавит новый элемент в список, одновременно гарантируя, что список не станет больше 100 элементов. Это очень полезно при использовании Redis для хранения журналов, например. Важно отметить, что при использовании таким образом LTRIM является операцией O(1), поскольку в среднем случае из хвоста списка удаляется только один элемент.
Возвращаемое значение
Примеры
RPUSH mylist "one" RPUSH mylist "two" RPUSH mylist "three" LTRIM mylist 1 -1 LRANGE mylist 0 -1
© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/ltrim/