Строки
Ключ, имеющий одно значение, является строкой 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
>>>> 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() возвращает старое значение и одновременно устанавливает новое:
>>>> conn.getset('secret', 'icky-icky-icky-ptang-zoop-boing!')
>b'ni!'
Не будем сильно забегать вперед. Это сработало?
>>>> conn.get('secret')
>b'icky-icky-icky-ptang-zoop-boing!'
Теперь мы получим подстроку с помощью метода getrange() (как и в Python, смещение обозначается как 0 для начала списка и -1 для конца):
>>>> conn.getrange('secret', -6, -1)
>b'boing!'
Заменим подстроку с помощью метода setrange() (используя смещение, которое начинается с нуля):
>>>> conn.setrange('secret', 0, 'ICKY')
>32
>>>> conn.get('secret')
>b'ICKY-icky-icky-ptang-zoop-boing!'
Далее установим значения сразу нескольких ключей с помощью метода mset():
>>>> conn.mset({'pie': 'cherry', 'cordial': 'sherry'})
>True
Получим более одного значения с помощью метода mget():
>>>> conn.mget(['fever', 'carats'])
>[b'101.5', b'24']
Удалим ключ с помощью метода delete():
>>>> conn.delete('fever')
>True
Выполним инкремент с помощью команд incr() и incrbyfloat() и декремент с помощью команды decr():
>>>> 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():