Несколько проблем в распределенной блокировке redis

  1. Как избежать тупика?

Повторный вход: метод setnx может установить время истечения срока действия, чтобы избежать ошибок при выполнении бизнес-операций и проблем взаимоблокировки, которые приводят к сбою снятия блокировок;

  1. Как гарантировать, что поток A не удалит блокировку потока B?

Сгенерируйте уникальное значение в методе setnx.При удалении блокировки оцените, соответствует ли значение этому потоку, и удалите его, если оно соответствует;

  1. Как решить проблему, что бизнес еще не выполнен, когда время экспирации истекло?

Redisson реализует механизм сторожевого таймера: каждые 10 секунд он определяет, что бизнес не был выполнен, и затем продолжает работу в течение 10 секунд;

  1. Как решить проблему атомарности множественных операций блокировки и удаления блокировок?

Redis поддерживает выполнение сценариев lua, а логика может быть записана в сценарии lua для обеспечения атомарности.

おすすめ

転載: blog.csdn.net/weixin_42465316/article/details/105460092