mm_redis
Version:
高效的Redis客户端封装库,提供连接池管理、数据类型操作、错误处理和批量操作优化
91 lines (75 loc) • 2.93 kB
JavaScript
// 直接测试Redis模块的hmset功能
// 修改导入方式,查看实际导出的内容
const redisModule = require('./index.js');
// 简单的测试日志函数
const log = (...args) => {
$.log.debug(`[${new Date().toISOString()}]`, ...args);
};
// 模拟$对象
global.$ = {
log: {
debug: (...args) => log('[DEBUG]', ...args),
info: (...args) => log('[INFO]', ...args),
warn: (...args) => log('[WARN]', ...args),
error: (...args) => log('[ERROR]', ...args)
}
};
// 查看模块导出内容
log('模块导出内容:', Object.keys(redisModule));
const Redis = redisModule.Redis || redisModule.default || redisModule;
log('使用的Redis构造函数:', Redis);
// 创建测试函数
async function testRedisHmset() {
log('开始测试Redis模块的hmset方法');
try {
// 创建Redis实例(使用默认配置)
const redis = new Redis({
host: 'localhost',
port: 6379,
// 其他必要配置
});
// 初始化
await redis.init();
log('Redis模块初始化完成');
// 测试数据
const testKey = 'test_hmset_key';
const testObj = {
field1: 'v1',
field2: 'v2',
field3: { nested: 'value' }
};
// 先删除测试键(如果存在)
await redis.del(testKey);
log(`已清理测试键: ${testKey}`);
// 调用hmset方法
log(`调用hmset方法,键: ${testKey}, 对象:`, JSON.stringify(testObj));
const result = await redis.hmset(testKey, testObj);
log(`hmset方法返回结果: ${result}`);
// 验证结果
log(`验证设置结果...`);
const field1Value = await redis.hget(testKey, 'field1');
const field2Value = await redis.hget(testKey, 'field2');
const field3Value = await redis.hget(testKey, 'field3');
const allFields = await redis.hgetall(testKey);
log(`field1值: ${field1Value}`);
log(`field2值: ${field2Value}`);
log(`field3值: ${field3Value}`);
log(`所有字段:`, JSON.stringify(allFields));
// 检查结果是否符合预期
const success = field1Value === 'v1' && field2Value === 'v2';
log(`测试${success ? '通过' : '失败'}`);
// 清理
await redis.del(testKey);
await redis.destroy();
log('测试完成,资源已清理');
return success;
} catch (error) {
log('测试过程中发生错误:', error);
return false;
}
}
// 运行测试
testRedisHmset().then(result => {
log(`测试结束,总体结果: ${result ? '成功' : '失败'}`);
process.exit(result ? 0 : 1);
});