mm_cachebase 1.4.2 → 1.4.4

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 (2) hide show
  1. package/README.md +264 -0
  2. package/package.json +5 -5
package/README.md ADDED
@@ -0,0 +1,264 @@
1
+ # mm_cachebase
2
+
3
+ 一个轻量级的本地缓存类库,提供了丰富的缓存操作接口,支持过期时间设置、数组操作等功能。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ npm install mm_cachebase
9
+ ```
10
+
11
+ ## 基本使用
12
+
13
+ ```javascript
14
+ const CacheBase = require('mm_cachebase');
15
+
16
+ // 创建缓存实例
17
+ const cache = new CacheBase();
18
+
19
+ // 基本操作示例
20
+ async function example() {
21
+ // 设置缓存,过期时间为10秒
22
+ await cache.set("name", "张三", 10);
23
+
24
+ // 获取缓存
25
+ const value = await cache.get("name");
26
+ console.log(value); // 输出: 张三
27
+
28
+ // 删除缓存
29
+ await cache.del("name");
30
+ }
31
+ ```
32
+
33
+ ## API 说明
34
+
35
+ ### 构造函数
36
+
37
+ ```javascript
38
+ const cache = new CacheBase();
39
+ ```
40
+
41
+ 创建一个新的缓存实例。缓存实例包含以下属性:
42
+ - `list`: 存储缓存数据的数组
43
+ - `func`: 到期通知函数(可选)
44
+
45
+ ### 基本操作
46
+
47
+ #### 设置缓存
48
+ ```javascript
49
+ await cache.set(key, value, maxAge)
50
+ ```
51
+ - `key`: 缓存键名
52
+ - `value`: 缓存的值
53
+ - `maxAge`: 过期时间(秒),-1表示永不过期
54
+ - 返回: 设置的值
55
+
56
+ #### 获取缓存
57
+ ```javascript
58
+ await cache.get(key)
59
+ ```
60
+ - `key`: 缓存键名
61
+ - 返回: 缓存值,不存在则返回undefined
62
+
63
+ #### 删除缓存
64
+ ```javascript
65
+ await cache.del(key)
66
+ ```
67
+ - `key`: 缓存键名
68
+ - 返回: 成功返回1,失败返回0
69
+
70
+ #### 添加缓存
71
+ ```javascript
72
+ await cache.add(key, value, maxAge)
73
+ ```
74
+ - 只在键不存在时添加缓存
75
+ - 返回: 添加成功返回值,已存在返回0
76
+
77
+ #### 判断键是否存在
78
+ ```javascript
79
+ await cache.has(key)
80
+ ```
81
+ - 返回: 存在返回1,不存在返回0
82
+
83
+ ### 过期时间操作
84
+
85
+ #### 设置/查询过期时间
86
+ ```javascript
87
+ await cache.ttl(key, maxAge)
88
+ ```
89
+ - `maxAge`: 不传则查询剩余时间,传入则设置新的过期时间
90
+ - 返回: 查询时返回剩余秒数,设置时返回1
91
+
92
+ ### 数值操作
93
+
94
+ #### 增加整数
95
+ ```javascript
96
+ await cache.addInt(key, num)
97
+ ```
98
+ - `num`: 要增加的数值,可以为负数
99
+ - 返回: 计算后的结果
100
+
101
+ #### 增加浮点数
102
+ ```javascript
103
+ await cache.addFloat(key, num)
104
+ ```
105
+ - 用法同addInt,支持浮点数
106
+
107
+ ### 字符串操作
108
+
109
+ #### 追加字符串
110
+ ```javascript
111
+ await cache.addStr(key, str)
112
+ ```
113
+ - 在已有字符串后追加新字符串
114
+ - 返回: 追加后的完整字符串
115
+
116
+ #### 获取子字符串
117
+ ```javascript
118
+ await cache.getrange(key, start, end)
119
+ ```
120
+ - 获取缓存字符串的指定范围
121
+ - 返回: 截取的字符串
122
+
123
+ #### 替换字符串
124
+ ```javascript
125
+ await cache.setrange(key, index, value)
126
+ ```
127
+ - 从指定位置替换字符串
128
+
129
+ ### 数组操作
130
+
131
+ #### 设置数组
132
+ ```javascript
133
+ await cache.list_set(key, value, maxAge)
134
+ ```
135
+ - 设置一个数组类型的缓存
136
+
137
+ #### 添加数组元素
138
+ ```javascript
139
+ await cache.list_add(key, value)
140
+ ```
141
+ - 向数组末尾添加元素
142
+ - 返回: 成功返回1,失败返回-1
143
+
144
+ #### 判断数组元素是否存在
145
+ ```javascript
146
+ await cache.list_has(key, value)
147
+ ```
148
+ - 检查数组中是否包含指定元素
149
+
150
+ #### 获取数组片段
151
+ ```javascript
152
+ await cache.list_get(key, start, end)
153
+ ```
154
+ - 获取数组的指定范围元素
155
+
156
+ #### 清空/重置数组
157
+ ```javascript
158
+ await cache.list_clear(key, value)
159
+ ```
160
+ - 清空数组或用新数组替换
161
+
162
+ ### 其他操作
163
+
164
+ #### 排序
165
+ ```javascript
166
+ await cache.sort(key, way, obj_key)
167
+ ```
168
+ - `way`: 'asc'升序或'desc'降序
169
+ - `obj_key`: 如果数组元素是对象,指定排序的键
170
+
171
+ #### 获取所有键名
172
+ ```javascript
173
+ await cache.keys(pattern)
174
+ ```
175
+ - `pattern`: 支持*通配符的匹配模式
176
+ - 返回: 匹配的键名数组
177
+
178
+ #### 清空缓存
179
+ ```javascript
180
+ await cache.clear(pattern)
181
+ ```
182
+ - `pattern`: 可选,支持*通配符,清空匹配的键
183
+ - 不传则清空所有缓存
184
+
185
+ ## 使用示例
186
+
187
+ ### 基本缓存操作
188
+ ```javascript
189
+ const cache = new CacheBase();
190
+
191
+ async function example() {
192
+ // 设置缓存
193
+ await cache.set("user", "张三", 60); // 60秒后过期
194
+
195
+ // 获取缓存
196
+ const user = await cache.get("user");
197
+ console.log(user); // 输出: 张三
198
+
199
+ // 检查是否存在
200
+ const exists = await cache.has("user");
201
+ console.log(exists); // 输出: 1
202
+
203
+ // 删除缓存
204
+ await cache.del("user");
205
+ }
206
+ ```
207
+
208
+ ### 数组操作示例
209
+ ```javascript
210
+ async function arrayExample() {
211
+ // 设置数组
212
+ await cache.list_set("users", ["张三", "李四"], 300);
213
+
214
+ // 添加元素
215
+ await cache.list_add("users", "王五");
216
+
217
+ // 获取数组
218
+ const users = await cache.list_get("users");
219
+ console.log(users); // 输出: ["张三", "李四", "王五"]
220
+
221
+ // 排序
222
+ await cache.sort("users", "asc");
223
+ }
224
+ ```
225
+
226
+ ### 过期时间管理
227
+ ```javascript
228
+ async function ttlExample() {
229
+ // 设置缓存
230
+ await cache.set("token", "abc123", 30);
231
+
232
+ // 查询剩余时间
233
+ const ttl = await cache.ttl("token");
234
+ console.log(`剩余${ttl}秒`);
235
+
236
+ // 延长过期时间
237
+ await cache.ttl("token", 60);
238
+
239
+ // 设置永不过期
240
+ await cache.ttl("token", -1);
241
+ }
242
+ ```
243
+
244
+ ### 批量操作
245
+ ```javascript
246
+ async function batchExample() {
247
+ // 获取所有以user开头的键
248
+ const keys = await cache.keys("user*");
249
+
250
+ // 清空所有以temp开头的缓存
251
+ await cache.clear("temp*");
252
+
253
+ // 清空所有缓存
254
+ await cache.clear();
255
+ }
256
+ ```
257
+
258
+ ## 注意事项
259
+
260
+ 1. 所有操作方法都是异步的,需要使用async/await或Promise处理
261
+ 2. 过期时间单位为秒,-1表示永不过期
262
+ 3. 数组操作方法只能用于数组类型的缓存值
263
+ 4. 键名支持*通配符匹配,可用于批量操作
264
+ 5. 缓存数据存储在内存中,重启后数据会丢失
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mm_cachebase",
3
- "version": "1.4.2",
3
+ "version": "1.4.4",
4
4
  "description": "这是超级美眉cachebase帮助函数模块,一个简单的内存缓存",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "repository": {
10
10
  "type": "git",
11
- "url": "git+https://github.com/qiuwenwu/mm_cachebase.git"
11
+ "url": "git+https://gitee.com/qiuwenwu91/mm_cachebase.git"
12
12
  },
13
13
  "keywords": [
14
14
  "cachebase",
@@ -26,10 +26,10 @@
26
26
  "author": "邱文武",
27
27
  "license": "ISC",
28
28
  "bugs": {
29
- "url": "https://github.com/qiuwenwu/mm_cachebase/issues"
29
+ "url": "https://gitee.com/qiuwenwu91/mm_cachebase/issues"
30
30
  },
31
- "homepage": "https://github.com/qiuwenwu/mm_cachebase#readme",
31
+ "homepage": "https://gitee.com/qiuwenwu91/mm_cachebase#readme",
32
32
  "dependencies": {
33
- "mm_expand": "^1.7.0"
33
+ "mm_expand": "^1.8.3"
34
34
  }
35
35
  }