koatty_store 1.5.4 → 1.5.6

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.
@@ -1,228 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RedisStore = void 0;
4
- const tslib_1 = require("tslib");
5
- /*
6
- * @Author: richen
7
- * @Date: 2020-11-30 15:56:08
8
- * @LastEditors: Please set LastEditors
9
- * @LastEditTime: 2021-12-02 15:30:11
10
- * @License: BSD (3-Clause)
11
- * @Copyright (c) - <richenlin(at)gmail.com>
12
- */
13
- const helper = (0, tslib_1.__importStar)(require("koatty_lib"));
14
- const koatty_logger_1 = require("koatty_logger");
15
- const ioredis_1 = (0, tslib_1.__importDefault)(require("ioredis"));
16
- const generic_pool_1 = (0, tslib_1.__importDefault)(require("generic-pool"));
17
- const store_1 = require("../store");
18
- /**
19
- *
20
- *
21
- * @export
22
- * @class RedisStore
23
- */
24
- class RedisStore extends store_1.CacheStore {
25
- /**
26
- * Creates an instance of RedisStore.
27
- * @param {StoreOptions} options
28
- * @memberof RedisStore
29
- */
30
- constructor(options) {
31
- super(options);
32
- this.options = this.parseOpt(options);
33
- this.pool = null;
34
- this.client = null;
35
- }
36
- // parseOpt
37
- parseOpt(options) {
38
- const opt = {
39
- host: options.host || '127.0.0.1',
40
- port: options.port || 3306,
41
- username: options.username || "",
42
- password: options.password || "",
43
- db: options.db || 0,
44
- timeout: options.timeout,
45
- keyPrefix: options.keyPrefix || '',
46
- poolSize: options.poolSize || 10,
47
- connectTimeout: options.connectTimeout || 500,
48
- };
49
- if (helper.isArray(options.host)) {
50
- const hosts = [];
51
- for (let i = 0; i < options.host.length; i++) {
52
- const h = options.host[i];
53
- if (!helper.isEmpty(options.host[i])) {
54
- let p;
55
- if (helper.isArray(options.port)) {
56
- p = options.port[i];
57
- }
58
- else {
59
- p = options.port || 6379;
60
- }
61
- hosts.push({
62
- host: h,
63
- port: helper.toNumber(p),
64
- });
65
- }
66
- }
67
- // sentinel
68
- if (!helper.isEmpty(options.name)) {
69
- opt.host = "";
70
- opt.port = null;
71
- opt.sentinels = [...hosts];
72
- opt.sentinelUsername = options.username;
73
- opt.sentinelPassword = options.password;
74
- }
75
- else {
76
- // cluster
77
- opt.host = "";
78
- opt.port = null;
79
- opt.clusters = [...hosts];
80
- }
81
- }
82
- return opt;
83
- }
84
- /**
85
- * create connection by native
86
- *
87
- * @param {number} [connNum=0]
88
- * @returns {*} {Promise<IORedis.Redis | IORedis.Cluster>}
89
- * @memberof RedisStore
90
- */
91
- async connect(connNum = 0) {
92
- if (this.client && this.client.status === 'ready') {
93
- return this.client;
94
- }
95
- const defer = helper.getDefer();
96
- let connection;
97
- if (!helper.isEmpty(this.options.clusters)) {
98
- connection = new ioredis_1.default.Cluster([...this.options.clusters], { redisOptions: this.options });
99
- }
100
- else {
101
- connection = new ioredis_1.default(this.options);
102
- }
103
- connection.on('end', () => {
104
- if (connNum < 3) {
105
- connNum++;
106
- defer.resolve(this.connect(connNum));
107
- }
108
- else {
109
- this.close();
110
- defer.reject('redis connection end');
111
- }
112
- });
113
- connection.on('ready', () => {
114
- this.client = connection;
115
- defer.resolve(connection);
116
- });
117
- return defer.promise;
118
- }
119
- /**
120
- * get connection from pool
121
- *
122
- * @returns {*}
123
- * @memberof RedisStore
124
- */
125
- getConnection() {
126
- if (!this.pool || !this.pool.acquire) {
127
- const factory = {
128
- create: () => {
129
- return this.connect();
130
- },
131
- destroy: () => {
132
- return this.close();
133
- },
134
- validate: (resource) => {
135
- return Promise.resolve(resource.status === 'ready');
136
- }
137
- };
138
- this.pool = generic_pool_1.default.createPool(factory, {
139
- max: this.options.poolSize || 10,
140
- min: 2 // minimum size of the pool
141
- });
142
- this.pool.on('factoryCreateError', function (err) {
143
- koatty_logger_1.DefaultLogger.Error(err);
144
- });
145
- this.pool.on('factoryDestroyError', function (err) {
146
- koatty_logger_1.DefaultLogger.Error(err);
147
- });
148
- }
149
- return this.pool.acquire();
150
- }
151
- /**
152
- * close connection
153
- *
154
- * @returns {*}
155
- * @memberof RedisStore
156
- */
157
- async close() {
158
- this.client.disconnect();
159
- this.client = null;
160
- this.pool.destroy(this.client);
161
- this.pool = null;
162
- return;
163
- }
164
- /**
165
- *
166
- *
167
- * @param {*} conn
168
- * @returns {*}
169
- * @memberof RedisStore
170
- */
171
- async release(conn) {
172
- if (this.pool.isBorrowedResource(conn)) {
173
- return this.pool.release(conn);
174
- }
175
- return Promise.resolve();
176
- }
177
- /**
178
- * defineCommand
179
- *
180
- * @param {string} name
181
- * @param {{ numberOfKeys?: number; lua?: string; }} scripts
182
- * @returns {*}
183
- * @memberof RedisStore
184
- */
185
- async defineCommand(name, scripts) {
186
- const conn = await this.getConnection();
187
- if (!conn[name]) {
188
- conn.defineCommand(name, scripts);
189
- }
190
- return conn;
191
- }
192
- /**
193
- * get and compare value
194
- *
195
- * @param {string} name
196
- * @param {(string | number)} value
197
- * @returns {*} {Promise<any>}
198
- * @memberof RedisStore
199
- */
200
- async getCompare(name, value) {
201
- let conn;
202
- try {
203
- conn = await this.defineCommand("getCompare", {
204
- numberOfKeys: 1,
205
- lua: `
206
- local remote_value = redis.call("get",KEYS[1])
207
-
208
- if (not remote_value) then
209
- return 0
210
- elseif (remote_value == ARGV[1]) then
211
- return redis.call("del",KEYS[1])
212
- else
213
- return -1
214
- end
215
- `
216
- });
217
- return conn.getCompare(name, value);
218
- }
219
- catch (error) {
220
- throw error;
221
- }
222
- finally {
223
- this.release(conn);
224
- }
225
- }
226
- }
227
- exports.RedisStore = RedisStore;
228
- //# sourceMappingURL=redis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/store/redis.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts DELETED
@@ -1,252 +0,0 @@
1
- import { StoreOptions } from "./index";
2
- /**
3
- *
4
- *
5
- * @export
6
- * @class Store
7
- */
8
- export declare class CacheStore {
9
- client: any;
10
- pool: any;
11
- options: StoreOptions;
12
- /**
13
- * Creates an instance of CacheStore.
14
- * @param {StoreOptions} options
15
- * @memberof CacheStore
16
- */
17
- constructor(options: StoreOptions);
18
- getConnection(): void;
19
- close(): Promise<void>;
20
- release(conn: any): Promise<void>;
21
- defineCommand(name: string, scripts: any): void;
22
- getCompare(name: string, value: string | number): Promise<any>;
23
- /**
24
- * handler for native client
25
- *
26
- * @param {string} name
27
- * @param {any[]} data
28
- * @returns {*}
29
- * @memberof RedisStore
30
- */
31
- protected wrap(name: string, data: any[]): Promise<any>;
32
- /**
33
- * 字符串获取
34
- * @param name
35
- */
36
- get(name: string): Promise<any>;
37
- /**
38
- * 字符串写入
39
- * @param name
40
- * @param value
41
- * @param timeout
42
- * @returns {Promise}
43
- */
44
- set(name: string, value: string | number, timeout?: number): Promise<any>;
45
- /**
46
- * 以秒为单位,返回给定 key 的剩余生存时间
47
- * @param name
48
- * @returns {*}
49
- */
50
- ttl(name: string): Promise<any>;
51
- /**
52
- * 设置key超时属性
53
- * @param name
54
- * @param timeout
55
- */
56
- expire(name: string, timeout?: number): Promise<any>;
57
- /**
58
- * 删除key
59
- * @param name
60
- */
61
- rm(name: string): Promise<any>;
62
- /**
63
- *
64
- *
65
- * @param {*} name
66
- * @returns
67
- */
68
- del(name: string): Promise<any>;
69
- /**
70
- * 判断key是否存在
71
- * @param name
72
- */
73
- exists(name: string): Promise<any>;
74
- /**
75
- * 自增
76
- * @param name
77
- */
78
- incr(name: string): Promise<any>;
79
- /**
80
- * 自减
81
- * @param name
82
- * @returns {*}
83
- */
84
- decr(name: string): Promise<any>;
85
- /**
86
- * 将 key 所储存的值增加增量
87
- * @param name
88
- * @param incr
89
- * @returns {*}
90
- */
91
- incrby(name: string, incr?: number): Promise<any>;
92
- /**
93
- * 将 key 所储存的值减去减量
94
- *
95
- * @param {any} name
96
- * @param {any} decr
97
- */
98
- decrby(name: string, decr?: number): Promise<any>;
99
- /**
100
- * 哈希写入
101
- * @param name
102
- * @param key
103
- * @param value
104
- * @param timeout
105
- */
106
- hset(name: string, key: string, value: string | number, timeout?: number): Promise<any[]>;
107
- /**
108
- * 哈希获取
109
- * @param name
110
- * @param key
111
- * @returns {*}
112
- */
113
- hget(name: string, key: string): Promise<any>;
114
- /**
115
- * 查看哈希表 hashKey 中,给定域 key 是否存在
116
- * @param name
117
- * @param key
118
- * @returns {*}
119
- */
120
- hexists(name: string, key: string): Promise<any>;
121
- /**
122
- * 哈希删除
123
- * @param name
124
- * @param key
125
- * @returns {*}
126
- */
127
- hdel(name: string, key: string): Promise<any[]>;
128
- /**
129
- * 返回哈希表 key 中域的数量
130
- * @param name
131
- * @returns {*}
132
- */
133
- hlen(name: string): Promise<any>;
134
- /**
135
- * 给哈希表指定key,增加increment
136
- * @param name
137
- * @param key
138
- * @param incr
139
- * @returns {*}
140
- */
141
- hincrby(name: string, key: string, incr?: number): Promise<any>;
142
- /**
143
- * 返回哈希表所有key-value
144
- * @param name
145
- * @returns {*}
146
- */
147
- hgetall(name: string): Promise<any>;
148
- /**
149
- * 返回哈希表所有key
150
- * @param name
151
- * @returns {*}
152
- */
153
- hkeys(name: string): Promise<any>;
154
- /**
155
- * 返回哈希表所有value
156
- * @param name
157
- * @returns {*}
158
- */
159
- hvals(name: string): Promise<any>;
160
- /**
161
- * 判断列表长度,若不存在则表示为空
162
- * @param name
163
- * @returns {*}
164
- */
165
- llen(name: string): Promise<any>;
166
- /**
167
- * 将值插入列表表尾
168
- * @param name
169
- * @param value
170
- * @returns {*}
171
- */
172
- rpush(name: string, value: string | number): Promise<any>;
173
- /**
174
- *
175
- *
176
- * @param {string} name
177
- * @param {(string | number)} value
178
- * @returns {*}
179
- * @memberof RedisStore
180
- */
181
- lpush(name: string, value: string | number): Promise<any>;
182
- /**
183
- * 将列表表头取出,并去除
184
- * @param name
185
- * @returns {*}
186
- */
187
- lpop(name: string): Promise<any>;
188
- /**
189
- *
190
- *
191
- * @param {string} name
192
- * @returns {*}
193
- * @memberof RedisStore
194
- */
195
- rpop(name: string): Promise<any>;
196
- /**
197
- * 返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定
198
- * @param name
199
- * @param start
200
- * @param stop
201
- * @returns {*}
202
- */
203
- lrange(name: string, start: number, stop: number): Promise<any>;
204
- /**
205
- * 集合新增
206
- * @param name
207
- * @param value
208
- * @param timeout
209
- * @returns {*}
210
- */
211
- sadd(name: string, value: string | number, timeout?: number): Promise<any[]>;
212
- /**
213
- * 返回集合的基数(集合中元素的数量)
214
- * @param name
215
- * @returns {*}
216
- */
217
- scard(name: string): Promise<any>;
218
- /**
219
- * 判断 member 元素是否集合的成员
220
- * @param name
221
- * @param key
222
- * @returns {*}
223
- */
224
- sismember(name: string, key: string): Promise<any>;
225
- /**
226
- * 返回集合中的所有成员
227
- * @param name
228
- * @returns {*}
229
- */
230
- smembers(name: string): Promise<any>;
231
- /**
232
- * 移除并返回集合中的一个随机元素
233
- * @param name
234
- * @returns {*}
235
- */
236
- spop(name: string): Promise<any>;
237
- /**
238
- * 移除集合 key 中的一个 member 元素
239
- * @param name
240
- * @param key
241
- * @returns {*}
242
- */
243
- srem(name: string, key: string): Promise<any>;
244
- /**
245
- * 将 member 元素从 source 集合移动到 destination 集合
246
- * @param source
247
- * @param destination
248
- * @param member
249
- * @returns {*}
250
- */
251
- smove(source: string, destination: string, member: string): Promise<any>;
252
- }