Redis

Автор:

Cистема хранения данных в оперативной памяти, используемая как база данных, кэш

Redis — это сверхбыстрая система хранения данных в оперативной памяти, используемая как база данных, кэш и брокер сообщений. Её основное преимущество — мгновенный доступ к данным, поскольку всё хранится в RAM, а не на диске, как в традиционных СУБД.

\nRedis (REmote DIctionary Server) был создан Сальваторе Санфилиппо (antirez) в 2009 году и сегодня является одним из самых популярных инструментов в мире для кэширования и высоконагруженных систем.

Установка Redis

На Ubuntu или Debian:

sudo apt update
sudo apt install redis-server
sudo systemctl enable redis-server --now

Проверим, что Redis работает:

redis-cli ping

Ответ должен быть:

PONG

Использование Redis с Python

Для взаимодействия с Redis в Python чаще всего используют библиотеку redis-py.

Устанавливаем библиотеку:

pip install redis
import redis

# Подключаемся к Redis
r = redis.Redis(host='localhost', port=6379, db=0)

# Сохраняем значение
r.set('user:1001', 'Alice')

# Получаем значение
name = r.get('user:1001')
print(name.decode())  # Alice

# Работа со счетчиком
r.incr('page_views')
print("Page views:", r.get('page_views').decode())

# Работа со списком
r.rpush('tasks', 'task1')
r.rpush('tasks', 'task2')
print("All tasks:", r.lrange('tasks', 0, -1))

# Пример с кэшированием
import time

def get_data_from_db():
    print("Запрос к БД...")
    time.sleep(2)
    return {'id': 1, 'name': 'Redis tutorial'}

def get_data():
    cached = r.get('data:cache')
    if cached:
        print("Из кэша Redis")
        return eval(cached.decode())
    data = get_data_from_db()
    r.setex('data:cache', 10, str(data))  # TTL = 10 сек
    return data

print(get_data())   # первый раз — из БД
print(get_data())   # второй раз — из Redis