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