1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kakanshun-hoaven-libRedis

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

1、简介

使用Redis实现分布式锁

2、使用

直接调用RedisLockUtils.tryLock(final RedisTemplate jedisTemplate, final String lockName, final int lockTimeout, final int acquireTimeout, final long retryDuration);

参数介绍:

  • jedisTemplate:没啥好说的
  • lockName:锁的唯一名称
  • lockTimeout:锁过期时间(单位:秒)
  • acquireTimeout:请求锁的超时时间 (单位:秒)
  • retryDuration:请求锁的重试间隔时间 (单位:毫秒)

3、设计思路

3 . 1、基本思路

主要用到的是redis函数setNX(),这个应该是实现分布式锁最主要的函数。首先是将某一任务标识名(lockKey)作为键存到redis里,并为其设个过期时间,如果是还有lockKey请求过来,先是通过setNX()看看是否能将lockKey插入到redis里,可以的话就返回true,不可以就返回false。

3 . 2、锁过期时间

为避免特殊原因导致获得的锁无法释放,在加锁成功后,通过redis函数expire()给锁赋予一个生存时间,超出生存时间锁会被自动释放。

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Распределённая блокировка на основе Redis. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/kakanshun-hoaven-libRedis.git
git@api.gitlife.ru:oschina-mirror/kakanshun-hoaven-libRedis.git
oschina-mirror
kakanshun-hoaven-libRedis
kakanshun-hoaven-libRedis
master