mm_redis 1.7.0 → 1.8.1

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 CHANGED
@@ -2,23 +2,28 @@
2
2
 
3
3
  mm_redis是一个高效的Redis客户端封装库,提供了全面的Redis功能支持,包括连接池管理、数据类型操作、错误处理和批量操作优化。
4
4
 
5
+ [![npm version](https://badge.fury.io/js/mm_redis.svg)](https://badge.fury.io/js/mm_redis)
6
+ [![npm downloads](https://img.shields.io/npm/dm/mm_redis.svg)](https://www.npmjs.com/package/mm_redis)
7
+
5
8
  ## 版本信息
6
9
 
7
- - **当前版本**: 1.7.0
8
- - **更新日期**: 2024-10-07
10
+ - **当前版本**: 1.8.1
11
+ - **更新日期**: 2024-10-09
9
12
  - **作者**: 邱文武
13
+ - **NPM**: [https://www.npmjs.com/package/mm_redis](https://www.npmjs.com/package/mm_redis)
10
14
 
11
15
  ## 功能特性
12
16
 
13
17
  - 完整的连接池管理,优化并发性能
14
18
  - 支持Pipeline批量操作,提升执行效率
15
- - 支持所有主要Redis数据类型:String、List、Hash等
19
+ - 支持所有主要Redis数据类型:String、List、Hash、Set、Sorted Set等
16
20
  - 自动重连机制,使用指数退避策略
17
21
  - 全面的错误处理和日志记录
18
22
  - 自动JSON序列化/反序列化
19
23
  - 键前缀管理,支持多业务隔离
20
24
  - 自动连接管理,无需手动维护连接状态
21
25
  - 统一的事件系统,支持操作前后的事件监听
26
+ - 支持数值增减操作
22
27
 
23
28
  ## 安装
24
29
 
@@ -326,6 +331,35 @@ redis.on('set_error', (data) => {
326
331
  - `sort(key, options)`: 排序
327
332
  - `keys(pattern)`: 获取所有键名
328
333
 
334
+ ### 集合(Set)操作
335
+
336
+ - `sadd(key, members)`: 添加成员到集合
337
+ - `srem(key, members)`: 从集合中移除成员
338
+ - `sismember(key, member)`: 检查成员是否在集合中
339
+ - `smembers(key)`: 获取集合中的所有成员
340
+ - `scard(key)`: 获取集合中的成员数量
341
+ - `sinter(keys)`: 获取多个集合的交集
342
+ - `sunion(keys)`: 获取多个集合的并集
343
+ - `sdiff(keys)`: 获取多个集合的差集
344
+
345
+ ### 有序集合(Sorted Set)操作
346
+
347
+ - `zadd(key, score, member)`: 添加成员到有序集合
348
+ - `zrem(key, members)`: 从有序集合中移除成员
349
+ - `zscore(key, member)`: 获取有序集合中成员的分数
350
+ - `zrank(key, member)`: 获取有序集合中成员的排名
351
+ - `zrange(key, start, stop, withScores)`: 获取有序集合中指定范围的成员
352
+ - `zcard(key)`: 获取有序集合中的成员数量
353
+ - `zincrby(key, increment, member)`: 增加有序集合中成员的分数
354
+
355
+ ### 数值操作
356
+
357
+ - `incr(key)`: 将键的值增加1
358
+ - `decr(key)`: 将键的值减少1
359
+ - `incrby(key, increment)`: 将键的值增加指定的整数
360
+ - `decrby(key, decrement)`: 将键的值减少指定的整数
361
+ - `expire(key, seconds)`: 设置键的过期时间
362
+
329
363
  ## 连接池管理
330
364
 
331
365
  本模块内置了高效的连接池管理,可自动处理连接的创建、回收和复用。连接池配置可在初始化时设置:
@@ -356,6 +390,22 @@ redis.on('set_error', (data) => {
356
390
 
357
391
  ## 版本更新
358
392
 
393
+ ### 1.8.1 (2024-10-09)
394
+ - 修复mget方法返回格式问题,确保与原生Redis保持一致
395
+ - 修复mset方法参数验证逻辑,优化批量设置功能
396
+ - 优化Pipeline实现,确保命令正确执行
397
+ - 修复连接池初始化和管理逻辑
398
+ - 修复存储机制,确保数据正确持久化
399
+ - 准备npm发布,优化文档格式和结构
400
+ - 添加npm徽章和下载统计
401
+
402
+ ### 1.8.0 (2024-10-08)
403
+ - 新增集合(Set)操作支持:sadd、srem、sismember、smembers、scard、sinter、sunion、sdiff
404
+ - 新增有序集合(Sorted Set)操作支持:zadd、zrem、zscore、zrank、zrange、zcard、zincrby
405
+ - 新增数值操作支持:incr、decr、incrby、decrby、expire
406
+ - 更新文档,添加新功能的API说明
407
+ - 更新版本号和发布日期
408
+
359
409
  ### 1.7.0 (2024-10-07)
360
410
  - 统一事件系统的属性命名规范
361
411
  - 更新所有方法的事件emit属性,使用统一的key、value、ttl、result等命名
@@ -0,0 +1,63 @@
1
+ ```markdown
2
+ # 三种缓存方式方法兼容性对比表格
3
+
4
+ ## 核心缓存方法
5
+
6
+ | 方法名 | Redis | MongoDB | CacheBase | 状态说明 |
7
+ |-------|-------|---------|-----------|----------|
8
+ | set | ✅ | ✅ | ✅ | 完全兼容 |
9
+ | get | ✅ | ✅ | ✅ | 完全兼容 |
10
+ | del | ✅ | ✅ | ✅ | 完全兼容 |
11
+ | has | ✅ | ✅ | ✅ | 完全兼容 |
12
+ | clear | ✅ | ✅ | ✅ | 完全兼容 |
13
+ | keys | ✅ | ✅ | ✅ | 完全兼容 |
14
+ | ttl | ✅ | ✅ | ✅ | 完全兼容 |
15
+ | add | ✅ | ✅ | ✅ | 完全兼容 |
16
+ | addInt | ✅ | ✅ | ✅ | 完全兼容 |
17
+ | addStr | ✅ | ✅ | ✅ | 完全兼容 |
18
+ | sort | ✅ | ✅ | ✅ | 模拟实现 |
19
+
20
+ ## Redis兼容方法 - 哈希表操作
21
+
22
+ | 方法名 | Redis | MongoDB | CacheBase | 状态说明 |
23
+ |-------|-------|---------|-----------|----------|
24
+ | hset | ✅ | ✅ | ✅ | 模拟实现,通过set对象方式 |
25
+ | hget | ✅ | ✅ | ✅ | 模拟实现,通过get对象方式 |
26
+ | hgetall | ✅ | ✅ | ✅ | 模拟实现,返回完整对象 |
27
+ | hdel | ✅ | ✅ | ✅ | 模拟实现,删除对象属性 |
28
+ | hexists | ✅ | ❌ | ❌ | 完全实现 |
29
+ | hkeys | ✅ | ❌ | ❌ | 完全实现 |
30
+ | hvals | ✅ | ❌ | ❌ | 完全实现 |
31
+
32
+ ## Redis兼容方法 - 集合操作
33
+
34
+ | 方法名 | Redis | MongoDB | CacheBase | 状态说明 |
35
+ |-------|-------|---------|-----------|----------|
36
+ | sadd | ✅ | ❌ | ❌ | 完全实现 |
37
+ | srem | ✅ | ❌ | ❌ | 完全实现 |
38
+ | sismember | ✅ | ❌ | ❌ | 完全实现 |
39
+ | smembers | ✅ | ❌ | ❌ | 完全实现 |
40
+ | scard | ✅ | ❌ | ❌ | 完全实现 |
41
+
42
+ ## Redis兼容方法 - 有序集合操作
43
+
44
+ | 方法名 | Redis | MongoDB | CacheBase | 状态说明 |
45
+ |-------|-------|---------|-----------|----------|
46
+ | zadd | ✅ | ❌ | ❌ | 完全实现 |
47
+ | zrem | ✅ | ❌ | ❌ | 完全实现 |
48
+ | zrange | ✅ | ❌ | ❌ | 完全实现 |
49
+ | zscore | ✅ | ❌ | ❌ | 完全实现 |
50
+
51
+ ## Redis兼容方法 - 其他常用命令
52
+
53
+ | 方法名 | Redis | MongoDB | CacheBase | 状态说明 |
54
+ |-------|-------|---------|-----------|----------|
55
+ | expire | ✅ | ✅ | ✅ | 兼容,内部映射到ttl |
56
+ | incr | ✅ | ⚠️ | ✅ | Redis原生支持,MongoDB返回undefined,CacheBase通过addInt模拟 |
57
+ | decr | ✅ | ⚠️ | ✅ | Redis原生支持,MongoDB返回undefined,CacheBase通过addInt模拟 |
58
+ | exists | ✅ | ✅ | ✅ | 兼容,内部映射到has |
59
+ | mget | ✅ | ⚠️ | ✅ | 已修复为返回数组格式,与原生Redis一致 |
60
+ | mset | ✅ | ✅ | ✅ | 已修复参数格式处理,添加了格式验证 |
61
+
62
+ 注:✅ 完全兼容/功能正常 | ⚠️ 部分兼容/有异常 | ❌ 不兼容/未实现
63
+ ```