@pangza/redis 0.0.0-stage → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/Redis.d.ts +98 -0
- package/dist/Redis.d.ts.map +1 -0
- package/dist/Redis.js +678 -0
- package/dist/Redis.js.map +1 -0
- package/dist/cache.d.ts +16 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +82 -0
- package/dist/cache.js.map +1 -0
- package/dist/decorators.d.ts +15 -0
- package/dist/decorators.d.ts.map +1 -0
- package/dist/decorators.js +30 -0
- package/dist/decorators.js.map +1 -0
- package/dist/enable.d.ts +12 -0
- package/dist/enable.d.ts.map +1 -0
- package/dist/enable.js +30 -0
- package/dist/enable.js.map +1 -0
- package/dist/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +22 -0
- package/dist/errors.js.map +1 -0
- package/dist/flag.d.ts +2 -0
- package/dist/flag.d.ts.map +1 -0
- package/dist/flag.js +8 -0
- package/dist/flag.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/rateLimit.d.ts +15 -0
- package/dist/rateLimit.d.ts.map +1 -0
- package/dist/rateLimit.js +90 -0
- package/dist/rateLimit.js.map +1 -0
- package/dist/redisson/RCountDownLatch.d.ts +12 -0
- package/dist/redisson/RCountDownLatch.d.ts.map +1 -0
- package/dist/redisson/RCountDownLatch.js +48 -0
- package/dist/redisson/RCountDownLatch.js.map +1 -0
- package/dist/redisson/RFairLock.d.ts +7 -0
- package/dist/redisson/RFairLock.d.ts.map +1 -0
- package/dist/redisson/RFairLock.js +32 -0
- package/dist/redisson/RFairLock.js.map +1 -0
- package/dist/redisson/RLock.d.ts +44 -0
- package/dist/redisson/RLock.d.ts.map +1 -0
- package/dist/redisson/RLock.js +156 -0
- package/dist/redisson/RLock.js.map +1 -0
- package/dist/redisson/RMultiLock.d.ts +18 -0
- package/dist/redisson/RMultiLock.d.ts.map +1 -0
- package/dist/redisson/RMultiLock.js +95 -0
- package/dist/redisson/RMultiLock.js.map +1 -0
- package/dist/redisson/RReadWriteLock.d.ts +9 -0
- package/dist/redisson/RReadWriteLock.d.ts.map +1 -0
- package/dist/redisson/RReadWriteLock.js +51 -0
- package/dist/redisson/RReadWriteLock.js.map +1 -0
- package/dist/redisson/RSemaphore.d.ts +13 -0
- package/dist/redisson/RSemaphore.d.ts.map +1 -0
- package/dist/redisson/RSemaphore.js +55 -0
- package/dist/redisson/RSemaphore.js.map +1 -0
- package/dist/redisson/Redisson.d.ts +45 -0
- package/dist/redisson/Redisson.d.ts.map +1 -0
- package/dist/redisson/Redisson.js +111 -0
- package/dist/redisson/Redisson.js.map +1 -0
- package/dist/redisson/index.d.ts +12 -0
- package/dist/redisson/index.d.ts.map +1 -0
- package/dist/redisson/index.js +32 -0
- package/dist/redisson/index.js.map +1 -0
- package/dist/redisson/objects.d.ts +116 -0
- package/dist/redisson/objects.d.ts.map +1 -0
- package/dist/redisson/objects.js +384 -0
- package/dist/redisson/objects.js.map +1 -0
- package/dist/redisson/scripts.d.ts +22 -0
- package/dist/redisson/scripts.d.ts.map +1 -0
- package/dist/redisson/scripts.js +196 -0
- package/dist/redisson/scripts.js.map +1 -0
- package/dist/redisson/types.d.ts +140 -0
- package/dist/redisson/types.d.ts.map +1 -0
- package/dist/redisson/types.js +8 -0
- package/dist/redisson/types.js.map +1 -0
- package/dist/redisson/utils.d.ts +12 -0
- package/dist/redisson/utils.d.ts.map +1 -0
- package/dist/redisson/utils.js +82 -0
- package/dist/redisson/utils.js.map +1 -0
- package/dist/types.d.ts +141 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +25 -0
- package/dist/types.js.map +1 -0
- package/package.json +36 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objects.js","sourceRoot":"","sources":["../../src/redisson/objects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Redisson 风格可重入锁:成功返回 null,失败返回剩余 TTL(ms) */
|
|
2
|
+
export declare const LOCK_ACQUIRE_LUA: string;
|
|
3
|
+
/** 看门狗续期 */
|
|
4
|
+
export declare const LOCK_RENEW_LUA: string;
|
|
5
|
+
/**
|
|
6
|
+
* 解锁:ARGV[1]=unlock message, ARGV[2]=leaseMs, ARGV[3]=field
|
|
7
|
+
* 返回 nil=非持有者;0=重入减一;1=完全释放并 publish
|
|
8
|
+
*/
|
|
9
|
+
export declare const LOCK_UNLOCK_LUA: string;
|
|
10
|
+
export declare const LOCK_FORCE_UNLOCK_LUA: string;
|
|
11
|
+
/** 公平锁:队列头才可获取 */
|
|
12
|
+
export declare const FAIR_LOCK_ACQUIRE_LUA: string;
|
|
13
|
+
/** 读锁:无写锁时共享 */
|
|
14
|
+
export declare const READ_LOCK_ACQUIRE_LUA: string;
|
|
15
|
+
export declare const READ_LOCK_UNLOCK_LUA: string;
|
|
16
|
+
/** 写锁:独占 */
|
|
17
|
+
export declare const WRITE_LOCK_ACQUIRE_LUA: string;
|
|
18
|
+
export declare const WRITE_LOCK_UNLOCK_LUA: string;
|
|
19
|
+
export declare const SEMAPHORE_TRY_ACQUIRE_LUA: string;
|
|
20
|
+
export declare const SEMAPHORE_RELEASE_LUA: string;
|
|
21
|
+
export declare const COUNTDOWN_COUNTDOWN_LUA: string;
|
|
22
|
+
//# sourceMappingURL=scripts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../src/redisson/scripts.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,QAYrB,CAAC;AAET,YAAY;AACZ,eAAO,MAAM,cAAc,QAMnB,CAAC;AAET;;;GAGG;AACH,eAAO,MAAM,eAAe,QAapB,CAAC;AAET,eAAO,MAAM,qBAAqB,QAM1B,CAAC;AAET,kBAAkB;AAClB,eAAO,MAAM,qBAAqB,QAkC1B,CAAC;AAET,gBAAgB;AAChB,eAAO,MAAM,qBAAqB,QAmB1B,CAAC;AAET,eAAO,MAAM,oBAAoB,QAwBzB,CAAC;AAET,YAAY;AACZ,eAAO,MAAM,sBAAsB,QAgB3B,CAAC;AAET,eAAO,MAAM,qBAAqB,QAgB1B,CAAC;AAET,eAAO,MAAM,yBAAyB,QAY9B,CAAC;AAET,eAAO,MAAM,qBAAqB,QAK1B,CAAC;AAET,eAAO,MAAM,uBAAuB,QAQ5B,CAAC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.COUNTDOWN_COUNTDOWN_LUA = exports.SEMAPHORE_RELEASE_LUA = exports.SEMAPHORE_TRY_ACQUIRE_LUA = exports.WRITE_LOCK_UNLOCK_LUA = exports.WRITE_LOCK_ACQUIRE_LUA = exports.READ_LOCK_UNLOCK_LUA = exports.READ_LOCK_ACQUIRE_LUA = exports.FAIR_LOCK_ACQUIRE_LUA = exports.LOCK_FORCE_UNLOCK_LUA = exports.LOCK_UNLOCK_LUA = exports.LOCK_RENEW_LUA = exports.LOCK_ACQUIRE_LUA = void 0;
|
|
4
|
+
/** Redisson 风格可重入锁:成功返回 null,失败返回剩余 TTL(ms) */
|
|
5
|
+
exports.LOCK_ACQUIRE_LUA = `
|
|
6
|
+
if (redis.call('exists', KEYS[1]) == 0) then
|
|
7
|
+
redis.call('hincrby', KEYS[1], ARGV[2], 1);
|
|
8
|
+
redis.call('pexpire', KEYS[1], ARGV[1]);
|
|
9
|
+
return nil;
|
|
10
|
+
end;
|
|
11
|
+
if (redis.call('hexists', KEYS[1], ARGV[2]) == 1) then
|
|
12
|
+
redis.call('hincrby', KEYS[1], ARGV[2], 1);
|
|
13
|
+
redis.call('pexpire', KEYS[1], ARGV[1]);
|
|
14
|
+
return nil;
|
|
15
|
+
end;
|
|
16
|
+
return redis.call('pttl', KEYS[1]);
|
|
17
|
+
`.trim();
|
|
18
|
+
/** 看门狗续期 */
|
|
19
|
+
exports.LOCK_RENEW_LUA = `
|
|
20
|
+
if (redis.call('hexists', KEYS[1], ARGV[2]) == 1) then
|
|
21
|
+
redis.call('pexpire', KEYS[1], ARGV[1]);
|
|
22
|
+
return 1;
|
|
23
|
+
end;
|
|
24
|
+
return 0;
|
|
25
|
+
`.trim();
|
|
26
|
+
/**
|
|
27
|
+
* 解锁:ARGV[1]=unlock message, ARGV[2]=leaseMs, ARGV[3]=field
|
|
28
|
+
* 返回 nil=非持有者;0=重入减一;1=完全释放并 publish
|
|
29
|
+
*/
|
|
30
|
+
exports.LOCK_UNLOCK_LUA = `
|
|
31
|
+
if (redis.call('hexists', KEYS[1], ARGV[3]) == 0) then
|
|
32
|
+
return nil;
|
|
33
|
+
end;
|
|
34
|
+
local counter = redis.call('hincrby', KEYS[1], ARGV[3], -1);
|
|
35
|
+
if (counter > 0) then
|
|
36
|
+
redis.call('pexpire', KEYS[1], ARGV[2]);
|
|
37
|
+
return 0;
|
|
38
|
+
else
|
|
39
|
+
redis.call('del', KEYS[1]);
|
|
40
|
+
redis.call('publish', KEYS[2], ARGV[1]);
|
|
41
|
+
return 1;
|
|
42
|
+
end;
|
|
43
|
+
`.trim();
|
|
44
|
+
exports.LOCK_FORCE_UNLOCK_LUA = `
|
|
45
|
+
if (redis.call('del', KEYS[1]) == 1) then
|
|
46
|
+
redis.call('publish', KEYS[2], ARGV[1]);
|
|
47
|
+
return 1;
|
|
48
|
+
end;
|
|
49
|
+
return 0;
|
|
50
|
+
`.trim();
|
|
51
|
+
/** 公平锁:队列头才可获取 */
|
|
52
|
+
exports.FAIR_LOCK_ACQUIRE_LUA = `
|
|
53
|
+
while (true) do
|
|
54
|
+
local first = redis.call('lindex', KEYS[2], 0);
|
|
55
|
+
if first == false then
|
|
56
|
+
break;
|
|
57
|
+
end;
|
|
58
|
+
if redis.call('exists', KEYS[3] .. first) == 0 then
|
|
59
|
+
redis.call('lpop', KEYS[2]);
|
|
60
|
+
else
|
|
61
|
+
break;
|
|
62
|
+
end;
|
|
63
|
+
end;
|
|
64
|
+
if (redis.call('exists', KEYS[1]) == 0) then
|
|
65
|
+
local first = redis.call('lindex', KEYS[2], 0);
|
|
66
|
+
if first == false or first == ARGV[2] then
|
|
67
|
+
redis.call('hincrby', KEYS[1], ARGV[2], 1);
|
|
68
|
+
redis.call('pexpire', KEYS[1], ARGV[1]);
|
|
69
|
+
if first == ARGV[2] then
|
|
70
|
+
redis.call('lpop', KEYS[2]);
|
|
71
|
+
end;
|
|
72
|
+
redis.call('del', KEYS[3] .. ARGV[2]);
|
|
73
|
+
return nil;
|
|
74
|
+
end;
|
|
75
|
+
end;
|
|
76
|
+
if (redis.call('hexists', KEYS[1], ARGV[2]) == 1) then
|
|
77
|
+
redis.call('hincrby', KEYS[1], ARGV[2], 1);
|
|
78
|
+
redis.call('pexpire', KEYS[1], ARGV[1]);
|
|
79
|
+
return nil;
|
|
80
|
+
end;
|
|
81
|
+
if (redis.call('exists', KEYS[3] .. ARGV[2]) == 0) then
|
|
82
|
+
redis.call('rpush', KEYS[2], ARGV[2]);
|
|
83
|
+
redis.call('set', KEYS[3] .. ARGV[2], 1, 'px', ARGV[3]);
|
|
84
|
+
end;
|
|
85
|
+
return redis.call('pttl', KEYS[1]);
|
|
86
|
+
`.trim();
|
|
87
|
+
/** 读锁:无写锁时共享 */
|
|
88
|
+
exports.READ_LOCK_ACQUIRE_LUA = `
|
|
89
|
+
local mode = redis.call('hget', KEYS[1], 'mode');
|
|
90
|
+
if (mode == false) then
|
|
91
|
+
redis.call('hset', KEYS[1], 'mode', 'read');
|
|
92
|
+
redis.call('hset', KEYS[1], ARGV[2], 1);
|
|
93
|
+
redis.call('hset', KEYS[1], 'r:' .. ARGV[2], 1);
|
|
94
|
+
redis.call('pexpire', KEYS[1], ARGV[1]);
|
|
95
|
+
return nil;
|
|
96
|
+
end;
|
|
97
|
+
if (mode == 'read') then
|
|
98
|
+
local ind = redis.call('hget', KEYS[1], 'r:' .. ARGV[2]);
|
|
99
|
+
local c = redis.call('hincrby', KEYS[1], ARGV[2], 1);
|
|
100
|
+
if (c == 1) then
|
|
101
|
+
redis.call('hset', KEYS[1], 'r:' .. ARGV[2], 1);
|
|
102
|
+
end;
|
|
103
|
+
redis.call('pexpire', KEYS[1], ARGV[1]);
|
|
104
|
+
return nil;
|
|
105
|
+
end;
|
|
106
|
+
return redis.call('pttl', KEYS[1]);
|
|
107
|
+
`.trim();
|
|
108
|
+
exports.READ_LOCK_UNLOCK_LUA = `
|
|
109
|
+
local mode = redis.call('hget', KEYS[1], 'mode');
|
|
110
|
+
if (mode == false) then
|
|
111
|
+
return 1;
|
|
112
|
+
end;
|
|
113
|
+
local c = redis.call('hincrby', KEYS[1], ARGV[2], -1);
|
|
114
|
+
if (c == 0) then
|
|
115
|
+
redis.call('hdel', KEYS[1], ARGV[2]);
|
|
116
|
+
redis.call('hdel', KEYS[1], 'r:' .. ARGV[2]);
|
|
117
|
+
end;
|
|
118
|
+
local remain = 0;
|
|
119
|
+
local t = redis.call('hgetall', KEYS[1]);
|
|
120
|
+
for i = 1, #t, 2 do
|
|
121
|
+
if string.sub(t[i], 1, 2) == 'r:' then
|
|
122
|
+
remain = remain + 1;
|
|
123
|
+
end;
|
|
124
|
+
end;
|
|
125
|
+
if (remain == 0) then
|
|
126
|
+
redis.call('del', KEYS[1]);
|
|
127
|
+
redis.call('publish', KEYS[2], ARGV[1]);
|
|
128
|
+
return 1;
|
|
129
|
+
end;
|
|
130
|
+
redis.call('pexpire', KEYS[1], ARGV[3]);
|
|
131
|
+
return 0;
|
|
132
|
+
`.trim();
|
|
133
|
+
/** 写锁:独占 */
|
|
134
|
+
exports.WRITE_LOCK_ACQUIRE_LUA = `
|
|
135
|
+
local mode = redis.call('hget', KEYS[1], 'mode');
|
|
136
|
+
if (mode == false) then
|
|
137
|
+
redis.call('hset', KEYS[1], 'mode', 'write');
|
|
138
|
+
redis.call('hset', KEYS[1], ARGV[2], 1);
|
|
139
|
+
redis.call('pexpire', KEYS[1], ARGV[1]);
|
|
140
|
+
return nil;
|
|
141
|
+
end;
|
|
142
|
+
if (mode == 'write') then
|
|
143
|
+
if (redis.call('hexists', KEYS[1], ARGV[2]) == 1) then
|
|
144
|
+
redis.call('hincrby', KEYS[1], ARGV[2], 1);
|
|
145
|
+
redis.call('pexpire', KEYS[1], ARGV[1]);
|
|
146
|
+
return nil;
|
|
147
|
+
end;
|
|
148
|
+
end;
|
|
149
|
+
return redis.call('pttl', KEYS[1]);
|
|
150
|
+
`.trim();
|
|
151
|
+
exports.WRITE_LOCK_UNLOCK_LUA = `
|
|
152
|
+
local mode = redis.call('hget', KEYS[1], 'mode');
|
|
153
|
+
if (mode ~= 'write') then
|
|
154
|
+
return nil;
|
|
155
|
+
end;
|
|
156
|
+
if (redis.call('hexists', KEYS[1], ARGV[2]) == 0) then
|
|
157
|
+
return nil;
|
|
158
|
+
end;
|
|
159
|
+
local c = redis.call('hincrby', KEYS[1], ARGV[2], -1);
|
|
160
|
+
if (c > 0) then
|
|
161
|
+
redis.call('pexpire', KEYS[1], ARGV[3]);
|
|
162
|
+
return 0;
|
|
163
|
+
end;
|
|
164
|
+
redis.call('del', KEYS[1]);
|
|
165
|
+
redis.call('publish', KEYS[2], ARGV[1]);
|
|
166
|
+
return 1;
|
|
167
|
+
`.trim();
|
|
168
|
+
exports.SEMAPHORE_TRY_ACQUIRE_LUA = `
|
|
169
|
+
local available = tonumber(redis.call('get', KEYS[1]) or ARGV[1]);
|
|
170
|
+
if available == nil then
|
|
171
|
+
available = tonumber(ARGV[1]);
|
|
172
|
+
redis.call('set', KEYS[1], available);
|
|
173
|
+
end;
|
|
174
|
+
local permits = tonumber(ARGV[2]);
|
|
175
|
+
if available >= permits then
|
|
176
|
+
redis.call('set', KEYS[1], available - permits);
|
|
177
|
+
return 1;
|
|
178
|
+
end;
|
|
179
|
+
return 0;
|
|
180
|
+
`.trim();
|
|
181
|
+
exports.SEMAPHORE_RELEASE_LUA = `
|
|
182
|
+
local available = tonumber(redis.call('get', KEYS[1]) or '0');
|
|
183
|
+
redis.call('set', KEYS[1], available + tonumber(ARGV[1]));
|
|
184
|
+
redis.call('publish', KEYS[2], '1');
|
|
185
|
+
return available + tonumber(ARGV[1]);
|
|
186
|
+
`.trim();
|
|
187
|
+
exports.COUNTDOWN_COUNTDOWN_LUA = `
|
|
188
|
+
local v = redis.call('decr', KEYS[1]);
|
|
189
|
+
if v <= 0 then
|
|
190
|
+
redis.call('del', KEYS[1]);
|
|
191
|
+
redis.call('publish', KEYS[2], '0');
|
|
192
|
+
return 0;
|
|
193
|
+
end;
|
|
194
|
+
return v;
|
|
195
|
+
`.trim();
|
|
196
|
+
//# sourceMappingURL=scripts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../src/redisson/scripts.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAClC,QAAA,gBAAgB,GAAG;;;;;;;;;;;;CAY/B,CAAC,IAAI,EAAE,CAAC;AAET,YAAY;AACC,QAAA,cAAc,GAAG;;;;;;CAM7B,CAAC,IAAI,EAAE,CAAC;AAET;;;GAGG;AACU,QAAA,eAAe,GAAG;;;;;;;;;;;;;CAa9B,CAAC,IAAI,EAAE,CAAC;AAEI,QAAA,qBAAqB,GAAG;;;;;;CAMpC,CAAC,IAAI,EAAE,CAAC;AAET,kBAAkB;AACL,QAAA,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCpC,CAAC,IAAI,EAAE,CAAC;AAET,gBAAgB;AACH,QAAA,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;CAmBpC,CAAC,IAAI,EAAE,CAAC;AAEI,QAAA,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBnC,CAAC,IAAI,EAAE,CAAC;AAET,YAAY;AACC,QAAA,sBAAsB,GAAG;;;;;;;;;;;;;;;;CAgBrC,CAAC,IAAI,EAAE,CAAC;AAEI,QAAA,qBAAqB,GAAG;;;;;;;;;;;;;;;;CAgBpC,CAAC,IAAI,EAAE,CAAC;AAEI,QAAA,yBAAyB,GAAG;;;;;;;;;;;;CAYxC,CAAC,IAAI,EAAE,CAAC;AAEI,QAAA,qBAAqB,GAAG;;;;;CAKpC,CAAC,IAAI,EAAE,CAAC;AAEI,QAAA,uBAAuB,GAAG;;;;;;;;CAQtC,CAAC,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/** Redisson 风格客户端配置 */
|
|
2
|
+
export interface RedissonConfig {
|
|
3
|
+
/** 看门狗默认租约(毫秒),默认 30000;lock() 未指定 lease 时启用续期 */
|
|
4
|
+
lockWatchdogTimeout?: number;
|
|
5
|
+
/** 自旋等待最小间隔(毫秒),默认 50 */
|
|
6
|
+
lockWatchInterval?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare const defaultRedissonConfig: Required<RedissonConfig>;
|
|
9
|
+
export interface RLock {
|
|
10
|
+
readonly name: string;
|
|
11
|
+
/** 阻塞加锁;leaseTimeMs 省略则启用看门狗 */
|
|
12
|
+
lock(leaseTimeMs?: number): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* 尝试加锁。
|
|
15
|
+
* - tryLock() 立即返回
|
|
16
|
+
* - tryLock(waitMs) 等待至多 waitMs,看门狗续期
|
|
17
|
+
* - tryLock(waitMs, leaseMs) 等待 waitMs,固定租约不看门狗
|
|
18
|
+
*/
|
|
19
|
+
tryLock(waitTimeMs?: number, leaseTimeMs?: number): Promise<boolean>;
|
|
20
|
+
unlock(): Promise<void>;
|
|
21
|
+
forceUnlock(): Promise<boolean>;
|
|
22
|
+
isLocked(): Promise<boolean>;
|
|
23
|
+
isHeldByCurrentThread(): Promise<boolean>;
|
|
24
|
+
getHoldCount(): Promise<number>;
|
|
25
|
+
remainTimeToLive(): Promise<number>;
|
|
26
|
+
}
|
|
27
|
+
export interface RReadWriteLock {
|
|
28
|
+
readLock(): RLock;
|
|
29
|
+
writeLock(): RLock;
|
|
30
|
+
}
|
|
31
|
+
export interface RSemaphore {
|
|
32
|
+
readonly name: string;
|
|
33
|
+
trySetPermits(permits: number): Promise<boolean>;
|
|
34
|
+
acquire(permits?: number): Promise<void>;
|
|
35
|
+
tryAcquire(permits?: number, waitTimeMs?: number): Promise<boolean>;
|
|
36
|
+
release(permits?: number): Promise<void>;
|
|
37
|
+
availablePermits(): Promise<number>;
|
|
38
|
+
}
|
|
39
|
+
export interface RCountDownLatch {
|
|
40
|
+
readonly name: string;
|
|
41
|
+
trySetCount(count: number): Promise<boolean>;
|
|
42
|
+
countDown(): Promise<void>;
|
|
43
|
+
await(waitTimeMs?: number): Promise<boolean>;
|
|
44
|
+
getCount(): Promise<number>;
|
|
45
|
+
}
|
|
46
|
+
export interface RAtomicLong {
|
|
47
|
+
readonly name: string;
|
|
48
|
+
get(): Promise<number>;
|
|
49
|
+
set(value: number): Promise<void>;
|
|
50
|
+
getAndSet(value: number): Promise<number>;
|
|
51
|
+
incrementAndGet(): Promise<number>;
|
|
52
|
+
decrementAndGet(): Promise<number>;
|
|
53
|
+
addAndGet(delta: number): Promise<number>;
|
|
54
|
+
compareAndSet(expect: number, update: number): Promise<boolean>;
|
|
55
|
+
delete(): Promise<boolean>;
|
|
56
|
+
}
|
|
57
|
+
export interface RBucket<T = unknown> {
|
|
58
|
+
readonly name: string;
|
|
59
|
+
get(): Promise<T | null>;
|
|
60
|
+
set(value: T, ttlSeconds?: number): Promise<void>;
|
|
61
|
+
getAndDelete(): Promise<T | null>;
|
|
62
|
+
compareAndSet(expect: T, update: T): Promise<boolean>;
|
|
63
|
+
trySet(value: T, ttlSeconds?: number): Promise<boolean>;
|
|
64
|
+
delete(): Promise<boolean>;
|
|
65
|
+
isExists(): Promise<boolean>;
|
|
66
|
+
expire(ttlSeconds: number): Promise<boolean>;
|
|
67
|
+
}
|
|
68
|
+
export interface RMap<V = string> {
|
|
69
|
+
readonly name: string;
|
|
70
|
+
get(key: string): Promise<V | undefined>;
|
|
71
|
+
put(key: string, value: V): Promise<void>;
|
|
72
|
+
putAll(entries: Record<string, V>): Promise<void>;
|
|
73
|
+
remove(key: string): Promise<boolean>;
|
|
74
|
+
containsKey(key: string): Promise<boolean>;
|
|
75
|
+
readAllMap(): Promise<Record<string, V>>;
|
|
76
|
+
size(): Promise<number>;
|
|
77
|
+
clear(): Promise<void>;
|
|
78
|
+
}
|
|
79
|
+
export interface RSet {
|
|
80
|
+
readonly name: string;
|
|
81
|
+
add(...members: string[]): Promise<number>;
|
|
82
|
+
remove(...members: string[]): Promise<number>;
|
|
83
|
+
contains(member: string): Promise<boolean>;
|
|
84
|
+
readAll(): Promise<string[]>;
|
|
85
|
+
size(): Promise<number>;
|
|
86
|
+
clear(): Promise<void>;
|
|
87
|
+
}
|
|
88
|
+
export interface RList {
|
|
89
|
+
readonly name: string;
|
|
90
|
+
add(...values: string[]): Promise<number>;
|
|
91
|
+
get(index: number): Promise<string | null>;
|
|
92
|
+
range(start: number, stop: number): Promise<string[]>;
|
|
93
|
+
remove(count: number, value: string): Promise<number>;
|
|
94
|
+
size(): Promise<number>;
|
|
95
|
+
clear(): Promise<void>;
|
|
96
|
+
}
|
|
97
|
+
export interface RScoredSortedSet {
|
|
98
|
+
readonly name: string;
|
|
99
|
+
add(score: number, value: string): Promise<boolean>;
|
|
100
|
+
addAll(members: Array<{
|
|
101
|
+
score: number;
|
|
102
|
+
value: string;
|
|
103
|
+
}>): Promise<number>;
|
|
104
|
+
remove(...values: string[]): Promise<number>;
|
|
105
|
+
rank(value: string): Promise<number | null>;
|
|
106
|
+
score(value: string): Promise<number | null>;
|
|
107
|
+
valueRange(start: number, stop: number): Promise<string[]>;
|
|
108
|
+
valueRangeByScore(min: number, max: number): Promise<string[]>;
|
|
109
|
+
size(): Promise<number>;
|
|
110
|
+
clear(): Promise<void>;
|
|
111
|
+
}
|
|
112
|
+
export interface RTopic {
|
|
113
|
+
readonly name: string;
|
|
114
|
+
publish(message: string): Promise<number>;
|
|
115
|
+
addListener(listener: (message: string) => void): Promise<() => Promise<void>>;
|
|
116
|
+
}
|
|
117
|
+
export interface RRateLimiter {
|
|
118
|
+
readonly name: string;
|
|
119
|
+
trySetRate(rate: number, rateIntervalMs: number): Promise<boolean>;
|
|
120
|
+
tryAcquire(permits?: number): Promise<boolean>;
|
|
121
|
+
/** 当前窗口剩余许可(近似) */
|
|
122
|
+
availablePermits(): Promise<number>;
|
|
123
|
+
}
|
|
124
|
+
export interface RBitSet {
|
|
125
|
+
readonly name: string;
|
|
126
|
+
get(bitIndex: number): Promise<boolean>;
|
|
127
|
+
set(bitIndex: number, value?: boolean): Promise<boolean>;
|
|
128
|
+
clear(bitIndex?: number): Promise<void>;
|
|
129
|
+
cardinality(): Promise<number>;
|
|
130
|
+
size(): Promise<number>;
|
|
131
|
+
}
|
|
132
|
+
export interface RQueue {
|
|
133
|
+
readonly name: string;
|
|
134
|
+
offer(...values: string[]): Promise<number>;
|
|
135
|
+
poll(): Promise<string | null>;
|
|
136
|
+
peek(): Promise<string | null>;
|
|
137
|
+
size(): Promise<number>;
|
|
138
|
+
clear(): Promise<void>;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/redisson/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/redisson/types.ts"],"names":[],"mappings":";;;AAQa,QAAA,qBAAqB,GAA6B;IAC7D,mBAAmB,EAAE,KAAM;IAC3B,iBAAiB,EAAE,EAAE;CACtB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** 每个 Redisson 客户端实例 id */
|
|
2
|
+
export declare function createClientId(): string;
|
|
3
|
+
export declare function currentThreadId(clientId: string): string;
|
|
4
|
+
export declare function runWithThreadIdAsync<T>(threadId: string, fn: () => Promise<T>): Promise<T>;
|
|
5
|
+
export declare function sleep(ms: number): Promise<void>;
|
|
6
|
+
export declare function channelName(lockName: string): string;
|
|
7
|
+
/** keys 已是最终 Redis key(调用方负责前缀) */
|
|
8
|
+
export declare function evalScript(script: string, keys: string[], args: Array<string | number>): Promise<unknown>;
|
|
9
|
+
export declare function evalNumber(script: string, keys: string[], args: Array<string | number>): Promise<number | null>;
|
|
10
|
+
/** 等待 pub/sub 通知或超时 */
|
|
11
|
+
export declare function waitNotify(channel: string, timeoutMs: number): Promise<boolean>;
|
|
12
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/redisson/utils.ts"],"names":[],"mappings":"AAIA,2BAA2B;AAC3B,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAOD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,mCAAmC;AACnC,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAC3B,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAIxB;AAED,uBAAuB;AACvB,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAuBlB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createClientId = createClientId;
|
|
7
|
+
exports.currentThreadId = currentThreadId;
|
|
8
|
+
exports.runWithThreadIdAsync = runWithThreadIdAsync;
|
|
9
|
+
exports.sleep = sleep;
|
|
10
|
+
exports.channelName = channelName;
|
|
11
|
+
exports.evalScript = evalScript;
|
|
12
|
+
exports.evalNumber = evalNumber;
|
|
13
|
+
exports.waitNotify = waitNotify;
|
|
14
|
+
const async_hooks_1 = require("async_hooks");
|
|
15
|
+
const crypto_1 = require("crypto");
|
|
16
|
+
const Redis_1 = __importDefault(require("../Redis"));
|
|
17
|
+
/** 每个 Redisson 客户端实例 id */
|
|
18
|
+
function createClientId() {
|
|
19
|
+
return `${process.pid}-${(0, crypto_1.randomBytes)(8).toString("hex")}`;
|
|
20
|
+
}
|
|
21
|
+
/** 异步上下文中的「线程」id,支撑可重入 */
|
|
22
|
+
const threadAls = new async_hooks_1.AsyncLocalStorage();
|
|
23
|
+
let threadSeq = 0;
|
|
24
|
+
function currentThreadId(clientId) {
|
|
25
|
+
const existing = threadAls.getStore();
|
|
26
|
+
if (existing)
|
|
27
|
+
return existing;
|
|
28
|
+
threadSeq += 1;
|
|
29
|
+
return `${clientId}:${threadSeq}`;
|
|
30
|
+
}
|
|
31
|
+
async function runWithThreadIdAsync(threadId, fn) {
|
|
32
|
+
return threadAls.run(threadId, fn);
|
|
33
|
+
}
|
|
34
|
+
function sleep(ms) {
|
|
35
|
+
return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
|
|
36
|
+
}
|
|
37
|
+
function channelName(lockName) {
|
|
38
|
+
return `pangza_lock_channel:{${lockName}}`;
|
|
39
|
+
}
|
|
40
|
+
/** keys 已是最终 Redis key(调用方负责前缀) */
|
|
41
|
+
async function evalScript(script, keys, args) {
|
|
42
|
+
const client = await Redis_1.default.getClient();
|
|
43
|
+
return client.eval(script, {
|
|
44
|
+
keys,
|
|
45
|
+
arguments: args.map(String),
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
async function evalNumber(script, keys, args) {
|
|
49
|
+
const result = await evalScript(script, keys, args);
|
|
50
|
+
if (result === null || result === undefined)
|
|
51
|
+
return null;
|
|
52
|
+
return Number(result);
|
|
53
|
+
}
|
|
54
|
+
/** 等待 pub/sub 通知或超时 */
|
|
55
|
+
async function waitNotify(channel, timeoutMs) {
|
|
56
|
+
if (timeoutMs <= 0)
|
|
57
|
+
return false;
|
|
58
|
+
let settled = false;
|
|
59
|
+
let unsub = null;
|
|
60
|
+
return new Promise((resolve) => {
|
|
61
|
+
const timer = setTimeout(() => {
|
|
62
|
+
if (settled)
|
|
63
|
+
return;
|
|
64
|
+
settled = true;
|
|
65
|
+
void unsub?.();
|
|
66
|
+
resolve(false);
|
|
67
|
+
}, timeoutMs);
|
|
68
|
+
void Redis_1.default.subscribe(channel, () => {
|
|
69
|
+
if (settled)
|
|
70
|
+
return;
|
|
71
|
+
settled = true;
|
|
72
|
+
clearTimeout(timer);
|
|
73
|
+
void unsub?.();
|
|
74
|
+
resolve(true);
|
|
75
|
+
}).then((u) => {
|
|
76
|
+
unsub = u;
|
|
77
|
+
if (settled)
|
|
78
|
+
void u();
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/redisson/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/** Redis TLS(可选;生产跨网建议开启) */
|
|
2
|
+
export interface RedisTlsConfig {
|
|
3
|
+
/** 是否启用 TLS,默认 false */
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
/** 拒绝对端证书校验(仅内网自签调试;生产勿开) */
|
|
6
|
+
rejectUnauthorized?: boolean;
|
|
7
|
+
/** CA / cert / key 文件路径(可选) */
|
|
8
|
+
ca?: string;
|
|
9
|
+
cert?: string;
|
|
10
|
+
key?: string;
|
|
11
|
+
}
|
|
12
|
+
/** 集群节点 */
|
|
13
|
+
export interface RedisNodeEndpoint {
|
|
14
|
+
host: string;
|
|
15
|
+
port?: number;
|
|
16
|
+
}
|
|
17
|
+
/** Cluster 配置(mode=cluster) */
|
|
18
|
+
export interface RedisClusterConfig {
|
|
19
|
+
/** 用于发现拓扑的种子节点(建议 ≥1,生产建议 ≥3) */
|
|
20
|
+
nodes?: RedisNodeEndpoint[];
|
|
21
|
+
/** 只读命令是否打到副本 */
|
|
22
|
+
useReplicas?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/** Sentinel 配置(mode=sentinel) */
|
|
25
|
+
export interface RedisSentinelConfig {
|
|
26
|
+
/** 主节点名称(sentinel monitor 里的 name) */
|
|
27
|
+
name?: string;
|
|
28
|
+
/** Sentinel 节点列表 */
|
|
29
|
+
nodes?: RedisNodeEndpoint[];
|
|
30
|
+
}
|
|
31
|
+
/** 连接模式 */
|
|
32
|
+
export type RedisMode = "standalone" | "cluster" | "sentinel";
|
|
33
|
+
/** Redis 连接配置 */
|
|
34
|
+
export interface RedisConfig {
|
|
35
|
+
/** 主机,默认 127.0.0.1(standalone) */
|
|
36
|
+
host?: string;
|
|
37
|
+
/** 端口,默认 6379 */
|
|
38
|
+
port?: number;
|
|
39
|
+
/** 密码,无密码可不传 */
|
|
40
|
+
password?: string;
|
|
41
|
+
/** ACL 用户名(Redis 6+);空则不传 */
|
|
42
|
+
username?: string;
|
|
43
|
+
/** 数据库编号,默认 0(cluster 忽略) */
|
|
44
|
+
db?: number;
|
|
45
|
+
/** key 统一前缀,便于隔离环境 */
|
|
46
|
+
keyPrefix?: string;
|
|
47
|
+
/** 连接超时(毫秒),默认 3000 */
|
|
48
|
+
connectTimeout?: number;
|
|
49
|
+
/**
|
|
50
|
+
* 断线重连:true(默认)指数退避;false 不重连。
|
|
51
|
+
* 最大重试间隔见 maxReconnectDelay。
|
|
52
|
+
*/
|
|
53
|
+
reconnect?: boolean;
|
|
54
|
+
/** 重连最大间隔(毫秒),默认 10000 */
|
|
55
|
+
maxReconnectDelay?: number;
|
|
56
|
+
/** TLS */
|
|
57
|
+
tls?: RedisTlsConfig;
|
|
58
|
+
/** 连接模式,默认 standalone */
|
|
59
|
+
mode?: RedisMode;
|
|
60
|
+
/** Cluster(mode=cluster) */
|
|
61
|
+
cluster?: RedisClusterConfig;
|
|
62
|
+
/** Sentinel(mode=sentinel) */
|
|
63
|
+
sentinel?: RedisSentinelConfig;
|
|
64
|
+
}
|
|
65
|
+
/** 默认配置 */
|
|
66
|
+
export declare const defaultRedisConfig: Required<Pick<RedisConfig, "host" | "port" | "db" | "keyPrefix" | "connectTimeout" | "reconnect" | "maxReconnectDelay" | "mode">> & RedisConfig;
|
|
67
|
+
/** 限流维度 */
|
|
68
|
+
export declare const RateLimiterType: {
|
|
69
|
+
readonly DEFAULT: "DEFAULT";
|
|
70
|
+
readonly IP: "IP";
|
|
71
|
+
readonly USER: "USER";
|
|
72
|
+
};
|
|
73
|
+
export type RateLimiterTypeValue = (typeof RateLimiterType)[keyof typeof RateLimiterType];
|
|
74
|
+
/** 限流窗口算法 */
|
|
75
|
+
export type RateLimitMode = "fixed" | "sliding";
|
|
76
|
+
/** @RateLimiter / option.rateLimit */
|
|
77
|
+
export interface RateLimitOption {
|
|
78
|
+
/** 时间窗口(秒),默认 2 */
|
|
79
|
+
time?: number;
|
|
80
|
+
/** 窗口内最大次数,默认 1 */
|
|
81
|
+
count?: number;
|
|
82
|
+
/** Redis key 前缀,默认 rateLimiter: */
|
|
83
|
+
key?: string;
|
|
84
|
+
/** DEFAULT=全局;IP=按客户端 IP;USER=按登录用户 */
|
|
85
|
+
type?: RateLimiterTypeValue | "DEFAULT" | "IP" | "USER";
|
|
86
|
+
/** fixed=固定窗口(默认);sliding=滑动窗口(ZSET) */
|
|
87
|
+
mode?: RateLimitMode;
|
|
88
|
+
}
|
|
89
|
+
/** @RepeatSubmit / option.repeatSubmit */
|
|
90
|
+
export interface RepeatSubmitOption {
|
|
91
|
+
/** 间隔(毫秒),默认 3000 */
|
|
92
|
+
interval?: number;
|
|
93
|
+
/** 提示文案 */
|
|
94
|
+
message?: string;
|
|
95
|
+
}
|
|
96
|
+
/** @Cacheable */
|
|
97
|
+
export interface CacheableOption {
|
|
98
|
+
/** key 前缀;默认 cache:{Class}.{method} */
|
|
99
|
+
key?: string;
|
|
100
|
+
/** 过期秒数;默认 60;≤0 永不过期 */
|
|
101
|
+
ttl?: number;
|
|
102
|
+
/**
|
|
103
|
+
* 自定义 key 后缀:接收方法参数,返回字符串。
|
|
104
|
+
* 默认 JSON.stringify(args)。
|
|
105
|
+
*/
|
|
106
|
+
keyGenerator?: (...args: unknown[]) => string;
|
|
107
|
+
}
|
|
108
|
+
/** @CacheEvict */
|
|
109
|
+
export interface CacheEvictOption {
|
|
110
|
+
/** 与 @Cacheable 相同的 key 前缀;默认 cache:{Class}.{method} */
|
|
111
|
+
key?: string;
|
|
112
|
+
/** 自定义后缀;默认 JSON.stringify(args) */
|
|
113
|
+
keyGenerator?: (...args: unknown[]) => string;
|
|
114
|
+
/** true:删除整个前缀下匹配(SCAN+DEL,谨慎) */
|
|
115
|
+
allEntries?: boolean;
|
|
116
|
+
}
|
|
117
|
+
/** tryLock / withLock */
|
|
118
|
+
export interface TryLockOption {
|
|
119
|
+
/** 锁过期(毫秒),默认 30000 */
|
|
120
|
+
ttlMs?: number;
|
|
121
|
+
/** 锁 token;默认随机 */
|
|
122
|
+
token?: string;
|
|
123
|
+
}
|
|
124
|
+
export interface WithLockOption extends TryLockOption {
|
|
125
|
+
/** 续租间隔(毫秒);默认 ttlMs/3;≤0 不续租 */
|
|
126
|
+
renewIntervalMs?: number;
|
|
127
|
+
}
|
|
128
|
+
/** 已持有的锁句柄 */
|
|
129
|
+
export interface LockHandle {
|
|
130
|
+
key: string;
|
|
131
|
+
token: string;
|
|
132
|
+
/** 安全释放(value 匹配才删) */
|
|
133
|
+
release: () => Promise<boolean>;
|
|
134
|
+
/** 手动续期(毫秒) */
|
|
135
|
+
renew: (ttlMs: number) => Promise<boolean>;
|
|
136
|
+
}
|
|
137
|
+
export declare const RATE_LIMIT_KEY = "rateLimiter:";
|
|
138
|
+
export declare const REPEAT_SUBMIT_KEY = "repeat:submit:";
|
|
139
|
+
export declare const CACHE_KEY = "cache:";
|
|
140
|
+
export declare const LOCK_KEY = "lock:";
|
|
141
|
+
//# sourceMappingURL=types.d.ts.map
|