Я отвечаю по телефону, поэтому не могу правильно отформатировать ответ.
Это может быть запоздалый ответ, но я оставлю его здесь на всякий случай, если кому-то все еще нужна эта функциональность.
Краткий ответ
ltrim mylist 0 - (n + 1)
где mylist - это ключ, а n - длина mylist.
Длинный ответ
Способ работы итрима заключается в том, что он принимает два индекса и возвращает элементы, которые попадают между ними, включая индексы.
Ltrim list startIndex endIndex
Пример при условии, что у нас есть список повторного редактирования с ключевым списком mylist, содержащий 10 записей:
ltrim mylist 0 5
обрежет список до элементов, начиная с индекса 0 до индекса 5. И отбросит те, которые выходят за пределы этого диапазона.
К счастью, операции со списками редисов поддерживают отрицательную индексацию, которая в некоторых ситуациях оказывается чрезвычайно полезной. Обычно, когда вы не знаете длину списка.
-1 относится к последнему элементу, - 2 предпоследнему элементу и т. Д. И (-n) - первый элемент.
Вне диапазона индексы не вредны. Если конечный индекс больше длины списка, redis рассматривает его как равный последнему индексу.
Вот почему ltrim mylist 0, - (n +1) очищает список. Это происходит потому, что (-n) эквивалентно индексу 0. Добавление 1 к нему не оставляет элементов в этом диапазоне, поскольку оно будет перед первым элементом.