Добавим в начало списка более одного элемента:
>>> conn.lpush('zoo', 'alligator', 'duck')
3
Добавим один элемент до или после другого с помощью метода linsert():
>>> conn.linsert('zoo', 'before', 'bear', 'beaver')
4
>>> conn.linsert('zoo', 'after', 'bear', 'cassowary')
5
Хранилища данных NoSQL
249
Добавим элемент, указав смещение для него, с помощью метода lset() (список
уже должен существовать):
>>> conn.lset('zoo', 2, 'marmoset')
True
Добавим элемент в конец с помощью метода rpush():
>>> conn.rpush('zoo', 'yak')
6
Получим элемент по заданному смещению с помощью метода lindex():
>>> conn.lindex('zoo', 3)
b'bear'
Получим все элементы, находящиеся в диапазоне смещений, с помощью метода
lrange() (можно использовать любой индекс от 0 до –1):
>>> conn.lrange('zoo', 0, 2)
[b'duck', b'alligator', b'marmoset']
Обрежем список с помощью метода ltrim(), сохранив только элементы в за-
данном диапазоне:
>>> conn.ltrim('zoo', 1, 4)
True
Получим диапазон значений (можно использовать любой индекс от 0 до –1)
с помощью метода lrange():
>>> conn.lrange('zoo', 0, -1)
[b'alligator', b'marmoset', b'bear', b'cassowary']
В главе 10 будет показано, как использовать списки Redis и механизм публика-
ции-подписки, чтобы реализовать очереди задач.
Хеши
Хеши Redis похожи на словари в Python, но они могут содержать только строки.
Поэтому вы можете создать только одномерный словарь. Рассмотрим примеры,
в которых создается и изменяется хеш с именем song.
Установим в хеше song значения полей do и re одновременно с помощью ме-
тода hmset():
>>> conn.hmset('song', {'do': 'a deer', 're': 'about a deer'})
True
Установим значение одного поля хеша с помощью метода hset():
>>> conn.hset('song', 'mi', 'a note to follow re')
1
250
Глава 8. Данные должны куда-то попадать
Получим значение одного поля с помощью метода hget():
>>> conn.hget('song', 'mi')