Базы данных: Redis

Redisopen in new window — резидентная (находящаяся всегда в оперативной памяти) база данных типа «ключ — значение». Принцип работы: ключ (строка) связывает с данными определённого типа. Значения привязанное к ключу можно запросить, изменить или удалить. Redis часто используется для кеширования.

Redis поддерживает несколько типов данных, некоторые из них:

  • String — основной тип данных, последовательность байт. Может содержать строки, числа, HTML или JSON.
  • List — упорядоченная коллекция;
  • Set — неупорядоченная уникальная коллекция;
  • Hash — словарь, коллекция объектов ключ-значение.

Кроме встроенных типов данных есть возможность подключения расширений с другими типами данных.

Запуск

Запустить Redis проще всего через docker.

docker run --name my-redis -p 6379:6379 -d redis
1

Redis-cli

Redis-cli — консольная утилита для подключения к Redis и выполнения команд. Если Redis запущена через docker то запускается redis-cli следующей командой:

docker exec -it my-redis redis-cli
1

Команды Redis

Для работы с каждом типом данных Redis предоставляет определённый набор командopen in new window.

Примеры команд:

  • Strings:
    • SET: Связывает ключ со значением
    • GET: Возвращает значение по ключу
    • INCR/DECR: Интерпретирует значение как число и увеличивает/уменьшает число на единицу
  • Lists:
    • LPUSH/RPUSH: Добавляет одно или несколько значений к ключу
    • LRANGE: Возвращает диапазон элементов из списка
    • LPOP/RPOP: Удаляет и возвращает первый или последний элемент списка

Примеры использования команд через redis-cli:

127.0.0.1:6379> set fruit mango
OK
127.0.0.1:6379> get fruit
"mango"
127.0.0.1:6379> set n 4
OK
127.0.0.1:6379> incr n
(integer) 5
127.0.0.1:6379> get n
"5"
127.0.0.1:6379> 
1
2
3
4
5
6
7
8
9
10
11
127.0.0.1:6379> lpush people bob
(integer) 1
127.0.0.1:6379> lpush people john
(integer) 2
127.0.0.1:6379> lrange people 0 1
1) "john"
2) "bob"
127.0.0.1:6379> rpush people marta
(integer) 3
127.0.0.1:6379> lrange people 0 2
1) "john"
2) "bob"
3) "marta"
127.0.0.1:6379> lpop people
"john"
127.0.0.1:6379> lrange people 0 1
1) "bob"
2) "marta"
127.0.0.1:6379> 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

Пример на Python

Пример использования библиотеки redis-pyopen in new window:

import redis

r = redis.Redis(host='redis-host', port=6379, decode_responses=True)

r.set('counter', 100)
r.incr('counter')
r.incr('counter')
counter = r.get('counter')
print(counter) # 102
1
2
3
4
5
6
7
8
9
Последниее изменение: 30.12.2024, 18:29:25