https://github.com/wenye123/redis-lock
基于redis的分布式锁和信号量
https://github.com/wenye123/redis-lock
lock redis-lock typescript
Last synced: 3 months ago
JSON representation
基于redis的分布式锁和信号量
- Host: GitHub
- URL: https://github.com/wenye123/redis-lock
- Owner: wenye123
- License: mit
- Created: 2019-08-25T07:16:41.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2019-11-08T09:11:52.000Z (over 5 years ago)
- Last Synced: 2024-09-21T09:06:33.433Z (9 months ago)
- Topics: lock, redis-lock, typescript
- Language: TypeScript
- Homepage:
- Size: 22.5 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# redis-lock
[](https://travis-ci.org/wenye123/redis-lock)
[](https://coveralls.io/github/wenye123/redis-lock)
[](https://www.npmjs.com/package/@wenye123/redis-lock)
[](https://www.npmjs.com/package/@wenye123/redis-lock)简单的 redis 分布式锁
## 安装
```bash
npm i -S @wenye123/redis-lock
```## 使用例子
```javascript
import redisLock from "@wenye123/redis-lock";
import Redis from "ioredis";const redis = new Redis({
host: "127.0.0.1",
port: 6379,
});const rlock = new redisLock({
client: redis,
keyPrefix: "bm:",
});const lockName = "tlock";
// 获取锁标志,null则表示获取失败
const identifier = await rlock.acquireLock(lockName);
// 释放锁
await rlock.releaseLock(lockName, identifier as string);const sename = "tsename";
// 获取信号量
const identifier = await rlock.acquireSemaphore(sename, 1);
// 刷新信号量
await rlock.refreshSemaphore(sename, identifier as string);
// 释放信号量
await rlock.releaseSemaphore(sename, identifier as string);```