- Как избежать тупика?
Повторный вход: метод setnx может установить время истечения срока действия, чтобы избежать ошибок при выполнении бизнес-операций и проблем взаимоблокировки, которые приводят к сбою снятия блокировок;
- Как гарантировать, что поток A не удалит блокировку потока B?
Сгенерируйте уникальное значение в методе setnx.При удалении блокировки оцените, соответствует ли значение этому потоку, и удалите его, если оно соответствует;
- Как решить проблему, что бизнес еще не выполнен, когда время экспирации истекло?
Redisson реализует механизм сторожевого таймера: каждые 10 секунд он определяет, что бизнес не был выполнен, и затем продолжает работу в течение 10 секунд;
- Как решить проблему атомарности множественных операций блокировки и удаления блокировок?
Redis поддерживает выполнение сценариев lua, а логика может быть записана в сценарии lua для обеспечения атомарности.