>>> conn.incr('carats')

25

>>> conn.incr('carats', 10)

35

>>> conn.decr('carats')

34

>>> conn.decr('carats', 15)

19

>>> conn.set('fever', '101.5')

True

>>> conn.incrbyfloat('fever')

102.5

>>> conn.incrbyfloat('fever', 0.5)

103.0

Команды decrbyfloat() не существует. Используйте отрицательный инкремент, чтобы уменьшить значение ключа fever:

>>> conn.incrbyfloat('fever', -2.0)

101.0

Списки

Списки Redis могут содержать только строки. Список создается, когда вы добавляете первые данные. Добавим данные в начало списка с помощью метода lpush():

>>> conn.lpush('zoo', 'bear')

1

Добавим в начало списка более одного элемента:

>>> conn.lpush('zoo', 'alligator', 'duck')

3

Добавим один элемент до или после другого с помощью метода linsert():

>>> conn.linsert('zoo', 'before', 'bear', 'beaver')

4

>>> conn.linsert('zoo', 'after', 'bear', 'cassowary')

5

Добавим элемент, указав смещение для него, с помощью метода 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

Получим значение одного поля с помощью метода hget():

>>> conn.hget('song', 'mi')

b'a note to follow re'

Получим значение нескольких полей с помощью метода hmget():

>>> conn.hmget('song', 're', 'do')

[b'about a deer', b'a deer']

Получим ключи всех полей хеша с помощью метода hkeys():

>>> conn.hkeys('song')

[b'do', b're', b'mi']

Получим значения всех полей хеша с помощью метода hvals():

>>> conn.hvals('song')

[b'a deer', b'about a deer', b'a note to follow re']

Получим количество полей хеша с помощью функции hlen():

>>> conn.hlen('song')

3

Получим ключи и значения всех полей хеша с помощью метода hgetall():

>>> conn.hgetall('song')

{b'do': b'a deer', b're': b'about a deer', b'mi': b'a note to follow re'}

Создадим поле, если его ключ не существует, с помощью метода hsetnx():

>>> conn.hsetnx('song', 'fa', 'a note that rhymes with la')

1

Множества

Множества Redis похожи на множества Python, как вы можете увидеть в следующих примерах.

Добавим одно или несколько значений множества:

>>> conn.sadd('zoo', 'duck', 'goat', 'turkey')

3

Получим количество значений множества:

>>> conn.scard('zoo')

3

Получим все значения множества:

>>> conn.smembers('zoo')

{b'duck', b'goat', b'turkey'}

Удалим значение из множества:

>>> conn.srem('zoo', 'turkey')

True

Создадим второе множество, чтобы продемонстрировать некоторые операции:

Перейти на страницу:

Все книги серии Бестселлеры O'Reilly

Похожие книги