Встречается на собеседованиях • сегодня
Делал ли локи в 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`
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы