Встречается на собеседованиях • сегодня

Делал ли локи в Redis

Да, работал с блокировками в Redis. Чаще всего использовал SET с параметрами NX (Not eXists) и PX (expire time in milliseconds) для реализации distributed lock.

Пример простой блокировки:

python
import redis

r = redis.Redis()

# Попытка захватить блокировку
lock_acquired = r.set("my_lock", "locked", nx=True, px=10000)

if lock_acquired:
try:
# Критическая секция
print("Lock acquired, doing work...")
finally:
# Освобождение блокировки
r.delete("my_lock")
else:
print("Failed to acquire lock")

text

Важные моменты:
1. Всегда устанавливайте TTL для блокировки (PX), чтобы избежать deadlock
2. Используйте случайное значение вместо "locked" и проверяйте его при удалении для безопасности
3. Для более сложных сценариев можно использовать Redlock алгоритм или библиотеки вроде `redlock-py`
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы