Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 190

в Python, и сервер Redis может быть применен в качестве промежуточного решения

для того, чтобы одно или несколько приложений делились данными друг с другом.

Я нахожу это настолько полезным, что посвящу этому небольшой фрагмент этой

книги.

Исходный код драйвера Python redis-py и тесты находятся на GitHub (https://

github.com/andymccurdy/redis-py), вы также можете найти документацию по нему

(http://bit.ly/redis-py-docs). Можно установить этот драйвер с помощью следующей

команды:

$ pip install redis

Сам по себе сервер Redis (http://redis.io/) хорошо задокументирован. Если вы

установите и запустите его на своем локальном компьютере, который имеет се-

тевое имя localhost, можете попробовать запустить программы из следующих

разделов.

Строки

Ключ, имеющий одно значение, является строкой Redis. Простые типы данных

Python автоматически преобразовываются. Подключимся к серверу Redis, рас-

положенному на некотором хосте (по умолчанию localhost) и порте (по умолча-

нию 6379):

>>> import redis

>>> conn = redis.Redis()

Строки redis.Redis('localhost') или redis.Redis('localhost', 6379) дадут тот же

результат.

Перечислим все ключи (которых пока нет):

>>> conn.keys('*')

[]

Создадим простую строку (с ключом 'secret'), целое число (с ключом 'carats')

и число с плавающей точкой (с ключом 'fever'):

>>> conn.set('secret', 'ni!')

True

Хранилища данных NoSQL

247

>>> conn.set('carats', 24)

True

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

True

Получим значения согласно заданным ключам:

>>> conn.get('secret')

b'ni!'

>>> conn.get('carats')

b'24'

>>> conn.get('fever')

b'101.5'

Метод setnx() устанавливает значение, но только если ключа не существует:

>>> conn.setnx('secret', 'icky-icky-icky-ptang-zoop-boing!')

False

Метод не сработал, поскольку мы уже определили ключ 'secret':

>>> conn.get('secret')

b'ni!'

Метод getset() возвращает старое значение и одновременно устанавливает

новое: