2015-01-05 3 views

ответ

3

В Redis, индекс -1 всегда ссылается на последний элемент в LIST

Это гораздо лучшее представление о том, что пытается найти индекс с начала списка (LLEN будет путь, чтобы получить это), потому что если кто-то вставляет или удаляет элемент после того, как вы получите индекс, но перед тем, как вы получите доступ к элементу, что-то сломается.

Чтобы получить последний элемент списка Redis, вы можете использовать LINDEX key -1command. Вы также можете атомизировать последний элемент списка командой LPOP key.

Документацию по всем командам Redis можно найти по адресу http://redis.io/commands.

+0

Большое спасибо. Но для меня это недостаточно. Например, есть список'MESSAGES': '0 - 101, 1 - 102, 2 - 103'. Я получаю последний элемент: 'LRANGE MESSAGES -1 -1'. Это значение: '103' Как получить индекс' 2'? – PiligrimBilim

+1

Если вам действительно нужен последний индекс, а не последний элемент, вы можете просто использовать LLEN и вычесть его из результата. Обратите внимание, что это может быть не последний индекс, если другие процессы или потоки обращаются к вашему экземпляру Redis. – jjm

+0

Это будет '$ variable = LLEN MESSAGES; $ variable = $ variable - 1'? – PiligrimBilim

Смежные вопросы