Назад к вопросам
Junior — Middle
59
Использовал ли ты механизмы блокировки в Redis для синхронизации данных?
Ответ от нейросети
sobes.tech AI
Да, в Redis можно реализовать механизмы блокировки для синхронизации данных, например, используя команду SET с параметрами NX (установить ключ, если его нет) и PX (время жизни). Это позволяет создать простой распределённый лок:
import redis
import time
r = redis.Redis()
lock_key = "resource_lock"
lock_timeout = 5000 # миллисекунды
# Попытка установить блокировку
if r.set(lock_key, "locked", nx=True, px=lock_timeout):
try:
# Критическая секция
print("Lock acquired, working...")
time.sleep(2) # имитация работы
finally:
r.delete(lock_key) # освобождение блокировки
else:
print("Could not acquire lock")
Для более сложных сценариев используют алгоритм Redlock, обеспечивающий надёжную распределённую блокировку.