@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.
Files changed (86) hide show
  1. package/README.md +2 -2
  2. package/dist/Redis.d.ts +98 -0
  3. package/dist/Redis.d.ts.map +1 -0
  4. package/dist/Redis.js +678 -0
  5. package/dist/Redis.js.map +1 -0
  6. package/dist/cache.d.ts +16 -0
  7. package/dist/cache.d.ts.map +1 -0
  8. package/dist/cache.js +82 -0
  9. package/dist/cache.js.map +1 -0
  10. package/dist/decorators.d.ts +15 -0
  11. package/dist/decorators.d.ts.map +1 -0
  12. package/dist/decorators.js +30 -0
  13. package/dist/decorators.js.map +1 -0
  14. package/dist/enable.d.ts +12 -0
  15. package/dist/enable.d.ts.map +1 -0
  16. package/dist/enable.js +30 -0
  17. package/dist/enable.js.map +1 -0
  18. package/dist/errors.d.ts +11 -0
  19. package/dist/errors.d.ts.map +1 -0
  20. package/dist/errors.js +22 -0
  21. package/dist/errors.js.map +1 -0
  22. package/dist/flag.d.ts +2 -0
  23. package/dist/flag.d.ts.map +1 -0
  24. package/dist/flag.js +8 -0
  25. package/dist/flag.js.map +1 -0
  26. package/dist/index.d.ts +12 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +43 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/rateLimit.d.ts +15 -0
  31. package/dist/rateLimit.d.ts.map +1 -0
  32. package/dist/rateLimit.js +90 -0
  33. package/dist/rateLimit.js.map +1 -0
  34. package/dist/redisson/RCountDownLatch.d.ts +12 -0
  35. package/dist/redisson/RCountDownLatch.d.ts.map +1 -0
  36. package/dist/redisson/RCountDownLatch.js +48 -0
  37. package/dist/redisson/RCountDownLatch.js.map +1 -0
  38. package/dist/redisson/RFairLock.d.ts +7 -0
  39. package/dist/redisson/RFairLock.d.ts.map +1 -0
  40. package/dist/redisson/RFairLock.js +32 -0
  41. package/dist/redisson/RFairLock.js.map +1 -0
  42. package/dist/redisson/RLock.d.ts +44 -0
  43. package/dist/redisson/RLock.d.ts.map +1 -0
  44. package/dist/redisson/RLock.js +156 -0
  45. package/dist/redisson/RLock.js.map +1 -0
  46. package/dist/redisson/RMultiLock.d.ts +18 -0
  47. package/dist/redisson/RMultiLock.d.ts.map +1 -0
  48. package/dist/redisson/RMultiLock.js +95 -0
  49. package/dist/redisson/RMultiLock.js.map +1 -0
  50. package/dist/redisson/RReadWriteLock.d.ts +9 -0
  51. package/dist/redisson/RReadWriteLock.d.ts.map +1 -0
  52. package/dist/redisson/RReadWriteLock.js +51 -0
  53. package/dist/redisson/RReadWriteLock.js.map +1 -0
  54. package/dist/redisson/RSemaphore.d.ts +13 -0
  55. package/dist/redisson/RSemaphore.d.ts.map +1 -0
  56. package/dist/redisson/RSemaphore.js +55 -0
  57. package/dist/redisson/RSemaphore.js.map +1 -0
  58. package/dist/redisson/Redisson.d.ts +45 -0
  59. package/dist/redisson/Redisson.d.ts.map +1 -0
  60. package/dist/redisson/Redisson.js +111 -0
  61. package/dist/redisson/Redisson.js.map +1 -0
  62. package/dist/redisson/index.d.ts +12 -0
  63. package/dist/redisson/index.d.ts.map +1 -0
  64. package/dist/redisson/index.js +32 -0
  65. package/dist/redisson/index.js.map +1 -0
  66. package/dist/redisson/objects.d.ts +116 -0
  67. package/dist/redisson/objects.d.ts.map +1 -0
  68. package/dist/redisson/objects.js +384 -0
  69. package/dist/redisson/objects.js.map +1 -0
  70. package/dist/redisson/scripts.d.ts +22 -0
  71. package/dist/redisson/scripts.d.ts.map +1 -0
  72. package/dist/redisson/scripts.js +196 -0
  73. package/dist/redisson/scripts.js.map +1 -0
  74. package/dist/redisson/types.d.ts +140 -0
  75. package/dist/redisson/types.d.ts.map +1 -0
  76. package/dist/redisson/types.js +8 -0
  77. package/dist/redisson/types.js.map +1 -0
  78. package/dist/redisson/utils.d.ts +12 -0
  79. package/dist/redisson/utils.d.ts.map +1 -0
  80. package/dist/redisson/utils.js +82 -0
  81. package/dist/redisson/utils.js.map +1 -0
  82. package/dist/types.d.ts +141 -0
  83. package/dist/types.d.ts.map +1 -0
  84. package/dist/types.js +25 -0
  85. package/dist/types.js.map +1 -0
  86. package/package.json +36 -4
package/README.md CHANGED
@@ -1,3 +1,3 @@
1
- # Temporary Holding Version
1
+ # @pangza/redis
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Redis / 限流 / 锁
@@ -0,0 +1,98 @@
1
+ import { type LockHandle, type RedisConfig, type TryLockOption, type WithLockOption } from "./types";
2
+ /** 创建 RESP2 客户端(standalone / cluster / sentinel) */
3
+ declare function createRedisClient(cfg: RedisConfig): any;
4
+ type RedisClient = ReturnType<typeof createRedisClient>;
5
+ /**
6
+ * Redis 操作封装(基于 node-redis v6)。
7
+ * 配置来自项目根目录 application*.yaml,模块加载及首次调用时自动连接。
8
+ */
9
+ declare class Redis {
10
+ private static client;
11
+ private static config;
12
+ private static connecting;
13
+ /** Pub/Sub 专用连接(subscribe 会阻塞普通命令) */
14
+ private static subClient;
15
+ private static ensureReady;
16
+ /** 覆盖配置;已连接时需 disconnect 后再 connect 才生效 */
17
+ static configure(config?: RedisConfig): void;
18
+ static isReady(): boolean;
19
+ /** PING;成功返回 true,失败抛错或返回 false(ping 自身异常时) */
20
+ static ping(): Promise<boolean>;
21
+ static connect(config?: RedisConfig): Promise<void>;
22
+ static disconnect(): Promise<void>;
23
+ static getClient(): Promise<RedisClient>;
24
+ static key(raw: string): string;
25
+ static set(key: string, value: string, ttlSeconds?: number): Promise<void>;
26
+ static setJSON(key: string, value: unknown, ttlSeconds?: number): Promise<void>;
27
+ static get(key: string): Promise<string | null>;
28
+ static getJSON<T = unknown>(key: string): Promise<T | null>;
29
+ static del(...keys: string[]): Promise<number>;
30
+ static exists(key: string): Promise<boolean>;
31
+ static expire(key: string, ttlSeconds: number): Promise<boolean>;
32
+ static ttl(key: string): Promise<number>;
33
+ static setNX(key: string, value: string, ttlSeconds?: number): Promise<boolean>;
34
+ static setNxPx(key: string, value: string, ttlMs: number): Promise<boolean>;
35
+ static unlockIfMatch(key: string, expectValue: string): Promise<boolean>;
36
+ /** 值匹配时续期(毫秒) */
37
+ static renewIfMatch(key: string, expectValue: string, ttlMs: number): Promise<boolean>;
38
+ /**
39
+ * 尝试获取锁。
40
+ * @returns 句柄;失败返回 null
41
+ */
42
+ static tryLock(key: string, option?: TryLockOption): Promise<LockHandle | null>;
43
+ /**
44
+ * 持锁执行;可选自动续租。拿不到锁抛 LockError。
45
+ */
46
+ static withLock<T>(key: string, fn: () => Promise<T> | T, option?: WithLockOption): Promise<T>;
47
+ static hSet(key: string, field: string, value: string): Promise<number>;
48
+ static hGet(key: string, field: string): Promise<string | undefined>;
49
+ static hGetAll(key: string): Promise<Record<string, string>>;
50
+ static hDel(key: string, ...fields: string[]): Promise<number>;
51
+ static sAdd(key: string, ...members: string[]): Promise<number>;
52
+ static sMembers(key: string): Promise<string[]>;
53
+ static sRem(key: string, ...members: string[]): Promise<number>;
54
+ static lPush(key: string, ...values: string[]): Promise<number>;
55
+ static rPush(key: string, ...values: string[]): Promise<number>;
56
+ static lPop(key: string): Promise<string | null>;
57
+ static rPop(key: string): Promise<string | null>;
58
+ static lRange(key: string, start: number, stop: number): Promise<string[]>;
59
+ static lLen(key: string): Promise<number>;
60
+ static zAdd(key: string, members: Array<{
61
+ score: number;
62
+ value: string;
63
+ }>): Promise<number>;
64
+ static zRange(key: string, min: number, max: number): Promise<string[]>;
65
+ static zRangeByScore(key: string, min: number | string, max: number | string): Promise<string[]>;
66
+ static zRem(key: string, ...members: string[]): Promise<number>;
67
+ static zCard(key: string): Promise<number>;
68
+ static zScore(key: string, member: string): Promise<number | null>;
69
+ /**
70
+ * 批量命令。fn 内对 multi 链式调用,结束后自动 exec。
71
+ * key 需自行 `Redis.key(...)` 加前缀。
72
+ */
73
+ static pipeline(fn: (multi: ReturnType<RedisClient["multi"]>) => void): Promise<unknown[]>;
74
+ static publish(channel: string, message: string): Promise<number>;
75
+ /**
76
+ * 订阅频道。返回取消订阅函数。
77
+ * 内部使用独立连接,避免阻塞主 client。
78
+ */
79
+ static subscribe(channel: string, listener: (message: string, channel: string) => void): Promise<() => Promise<void>>;
80
+ static incr(key: string): Promise<number>;
81
+ static decr(key: string): Promise<number>;
82
+ static setPx(key: string, value: string, ttlMs: number): Promise<void>;
83
+ static setJSONPx(key: string, value: unknown, ttlMs: number): Promise<void>;
84
+ /**
85
+ * 固定窗口限流。
86
+ * @returns 当前窗口内计数
87
+ */
88
+ static rateLimit(key: string, timeSeconds: number, count: number): Promise<number>;
89
+ /**
90
+ * 滑动窗口限流(ZSET)。
91
+ * @returns 当前窗口内数量(含本次尝试)
92
+ */
93
+ static rateLimitSliding(key: string, timeSeconds: number, count: number): Promise<number>;
94
+ /** 按前缀扫描删除(@CacheEvict allEntries);小规模缓存用 */
95
+ static deleteByPrefix(prefix: string): Promise<number>;
96
+ }
97
+ export default Redis;
98
+ //# sourceMappingURL=Redis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Redis.d.ts","sourceRoot":"","sources":["../src/Redis.ts"],"names":[],"mappings":"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"}