Redis 数据类型验证报告

目录

  • Redis 数据类型验证报告
    • 一、环境信息
      • 1.1 分片集群环境 (redis-2ffca4ed)
      • 1.2 哨兵环境 (redis-147885f8)
    • 二、数据类型验证结果
      • 2.1 分片集群验证 (redis-2ffca4ed)
        • 验证详情
      • 2.2 哨兵环境验证 (redis-147885f8)
        • 验证详情
    • 三、查看Key命令验证
      • 3.1 DBSIZE命令 - 查看key总数
      • 3.2 KEYS命令 - 查看所有key(生产慎用)
      • 3.3 SCAN命令 - 增量遍历key(推荐)
      • 3.4 TYPE命令 - 查看key类型
      • 3.5 TTL命令 - 查看key过期时间
      • 3.6 其他常用Key操作命令
    • 四、验证结论
      • 4.1 数据类型兼容性
      • 4.2 关键差异
      • 4.3 命令可用性总结
      • 4.4 建议
    • 五、验证命令清单
      • 连接方式
      • Key管理命令实际执行示例
      • 命令快速参考

Redis 数据类型验证报告

验证时间: 2026-01-20
验证环境: 148集群


一、环境信息

1.1 分片集群环境 (redis-2ffca4ed)

配置项
Redis版本6.2.19
运行模式cluster(集群模式)
服务地址246.98.142.58:6379
分片信息0-0/0-1/1-0/1-1/2-0/2-1(3个分片,每个2副本)
当前key数量33,378
Proxy层redis-2ffca4ed-predixy-0/1

1.2 哨兵环境 (redis-147885f8)

配置项
Redis版本7.2.11
运行模式standalone(主从复制+哨兵)
服务地址246.97.125.146:6379
哨兵节点redis-147885f8-sentinel-0/1/2
主从副本drc-redis-147885f8-0/1

二、数据类型验证结果

2.1 分片集群验证 (redis-2ffca4ed)

数据类型操作命令验证Key验证结果
STRINGSET/GET/TYPEverify:cluster:string✅ 通过
HASHHSET/HGETALL/TYPEverify:cluster:hash✅ 通过
LISTLPUSH/LRANGE/TYPEverify:cluster:list✅ 通过
SETSADD/SMEMBERS/TYPEverify:cluster:set✅ 通过
ZSETZADD/ZRANGE/TYPEverify:cluster:zset✅ 通过
验证详情

STRING类型:

SET verify:cluster:string "集群模式字符串测试" GET verify:cluster:string → "集群模式字符串测试" TYPE verify:cluster:string → "string"

HASH类型:

HSET verify:cluster:hash name "张三" age 25 city "北京" HGETALL verify:cluster:hash → name="张三", age="25", city="北京" TYPE verify:cluster:hash → "hash"

LIST类型:

LPUSH verify:cluster:list "task1" "task2" "task3" LRANGE verify:cluster:list 0 -1 → ["task3", "task2", "task1"] TYPE verify:cluster:list → "list"

SET类型:

SADD verify:cluster:set "python" "redis" "kubernetes" SMEMBERS verify:cluster:set → ["redis", "python", "kubernetes"] TYPE verify:cluster:set → "set"

ZSET类型:

ZADD verify:cluster:zset 100 "player1" 85 "player2" 92 "player3" ZRANGE verify:cluster:zset 0 -1 WITHSCORES → player2(85), player3(92), player1(100) TYPE verify:cluster:zset → "zset"

2.2 哨兵环境验证 (redis-147885f8)

数据类型操作命令验证Key验证结果
STRINGSET/GET/TYPEverify:sentinel:string✅ 通过
HASHHSET/HGETALL/TYPEverify:sentinel:hash✅ 通过
LISTLPUSH/LRANGE/TYPEverify:sentinel:list✅ 通过
SETSADD/SMEMBERS/TYPEverify:sentinel:set✅ 通过
ZSETZADD/ZRANGE/TYPEverify:sentinel:zset✅ 通过
验证详情

STRING类型:

SET verify:sentinel:string "哨兵模式字符串测试" GET verify:sentinel:string → "哨兵模式字符串测试" TYPE verify:sentinel:string → "string"

HASH类型:

HSET verify:sentinel:hash name "李四" age 30 city "上海" HGETALL verify:sentinel:hash → name="李四", age="30", city="上海" TYPE verify:sentinel:hash → "hash"

LIST类型:

LPUSH verify:sentinel:list "item1" "item2" "item3" LRANGE verify:sentinel:list 0 -1 → ["item3", "item2", "item1"] TYPE verify:sentinel:list → "list"

SET类型:

SADD verify:sentinel:set "docker" "prometheus" "grafana" SMEMBERS verify:sentinel:set → ["docker", "prometheus", "grafana"] TYPE verify:sentinel:set → "set"

ZSET类型:

ZADD verify:sentinel:zset 2000 "user1" 1500 "user2" 1800 "user3" ZRANGE verify:sentinel:zset 0 -1 WITHSCORES → user2(1500), user3(1800), user1(2000) TYPE verify:sentinel:zset → "zset"

三、查看Key命令验证

3.1 DBSIZE命令 - 查看key总数

实际执行结果:

分片集群:

$ kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c DBSIZE33378

哨兵环境:

$ kubectlexec-n qfusion-admin drc-redis-147885f8-0 -c redis --\redis-cli --user default -a'bqqkYdb@ggdpX60f'DBSIZE5
环境命令实际结果
分片集群DBSIZE33,378
哨兵环境DBSIZE5

3.2 KEYS命令 - 查看所有key(生产慎用)

⚠️重要发现: 该环境中KEYS命令已被禁用(安全配置)

实际执行结果:

分片集群:

$ kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c KEYS"verify:cluster:*"ERR unknowncommand`KEYS verify:cluster:*`, with args beginning with:

哨兵环境:

$ kubectlexec-n qfusion-admin drc-redis-147885f8-0 -c redis --\redis-cli --user default -a'bqqkYdb@ggdpX60f'KEYS"verify:sentinel:*"ERR unknowncommand'KEYS verify:sentinel:*', with args beginning with:
环境命令实际结果
分片集群KEYS “verify:cluster:*”❌ ERR unknown command (已禁用)
哨兵环境KEYS “verify:sentinel:*”❌ ERR unknown command (已禁用)

3.3 SCAN命令 - 增量遍历key(推荐)

⚠️重要发现: 该环境中SCAN命令也已被禁用

实际执行结果:

分片集群:

$ kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c SCAN0MATCH"verify:cluster:*"COUNT100ERR unknowncommand`SCAN0MATCH verify:cluster:* COUNT100`, with args beginning with:

哨兵环境:

$ kubectlexec-n qfusion-admin drc-redis-147885f8-0 -c redis --\redis-cli --user default -a'bqqkYdb@ggdpX60f'SCAN0MATCH"verify:sentinel:*"COUNT100ERR unknowncommand`SCAN0MATCH verify:sentinel:* COUNT100`, with args beginning with:
环境命令实际结果
分片集群SCAN 0 MATCH “verify:cluster:*”❌ ERR unknown command (已禁用)
哨兵环境SCAN 0 MATCH “verify:sentinel:*”❌ ERR unknown command (已禁用)

3.4 TYPE命令 - 查看key类型

实际执行结果:

分片集群:

$ kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c TYPE verify:cluster:string string

哨兵环境:

$ kubectlexec-n qfusion-admin drc-redis-147885f8-0 -c redis --\redis-cli --user default -a'bqqkYdb@ggdpX60f'TYPE verify:sentinel:string string
环境命令实际结果
分片集群TYPE verify:cluster:string✅ string
哨兵环境TYPE verify:sentinel:string✅ string

3.5 TTL命令 - 查看key过期时间

实际执行结果:

分片集群:

$ kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c TTL verify:cluster:string -1# 表示永不过期

哨兵环境:

$ kubectlexec-n qfusion-admin drc-redis-147885f8-0 -c redis --\redis-cli --user default -a'bqqkYdb@ggdpX60f'TTL verify:sentinel:string -1# 表示永不过期
环境命令实际结果
分片集群TTL verify:cluster:string✅ -1 (永不过期)
哨兵环境TTL verify:sentinel:string✅ -1 (永不过期)

3.6 其他常用Key操作命令

命令分片集群结果哨兵环境结果说明
RANDOMKEYkey:000000042554-随机返回一个key
EXISTS verify:cluster:string1-key存在返回1
OBJECT ENCODING verify:cluster:stringembstr-底层编码方式
STRLEN verify:cluster:string27-字符串长度
GET verify:cluster:string集群模式字符串测试-获取值
HGETALL verify:sentinel:hash-name,李四,age,30,city,上海获取hash所有字段
ZRANGE verify:cluster:zset 0 -1 WITHSCORESplayer2,85,player3,92,player1,100-有序集合范围查询

实际执行示例:

# RANDOMKEY - 随机获取一个key$ kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c RANDOMKEY key:000000042554# EXISTS - 检查key是否存在$ kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c EXISTS verify:cluster:string1# OBJECT ENCODING - 查看内部编码$ kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c OBJECT ENCODING verify:cluster:string embstr# STRLEN - 字符串长度$ kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c STRLEN verify:cluster:string27# HGETALL - 获取hash所有字段$ kubectlexec-n qfusion-admin drc-redis-147885f8-0 -c redis --\redis-cli --user default -a'bqqkYdb@ggdpX60f'HGETALL verify:sentinel:hash1)"name"2)"李四"3)"age"4)"30"5)"city"6)"上海"# ZRANGE - 有序集合范围查询$ kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c ZRANGE verify:cluster:zset0-1 WITHSCORES1)"player2"2)"85"3)"player3"4)"92"5)"player1"6)"100"

四、验证结论

4.1 数据类型兼容性

五种数据类型在分片集群和哨兵环境均完全兼容

  • STRING: ✅ 集群模式 ✅ 哨兵模式
  • HASH: ✅ 集群模式 ✅ 哨兵模式
  • LIST: ✅ 集群模式 ✅ 哨兵模式
  • SET: ✅ 集群模式 ✅ 哨兵模式
  • ZSET: ✅ 集群模式 ✅ 哨兵模式

4.2 关键差异

特性分片集群哨兵模式
KEYS命令❌ 已禁用❌ 已禁用
SCAN命令❌ 已禁用❌ 已禁用
DBSIZE命令✅ 可用✅ 可用
TYPE命令✅ 可用✅ 可用
TTL命令✅ 可用✅ 可用
连接参数需要-c参数不需要
数据分布自动分片主从复制

4.3 命令可用性总结

命令类别命令分片集群哨兵环境生产可用
查看总数DBSIZE✅ 33378✅ 5✅ 推荐
遍历查询KEYS pattern❌ 已禁用❌ 已禁用❌ 安全风险
遍历查询SCAN cursor❌ 已禁用❌ 已禁用✅ 通常推荐
类型查询TYPE key✅ string✅ string✅ 安全
过期查询TTL key✅ -1✅ -1✅ 安全
随机keyRANDOMKEY✅ 随机key-✅ 安全
存在检查EXISTS key✅ 1-✅ 安全
内部编码OBJECT ENCODING✅ embstr-✅ 安全

4.4 建议

  1. 生产环境安全配置:KEYS和SCAN命令已被禁用,这是出于安全考虑的配置
  2. 替代方案
    • 使用应用层维护key索引
    • 通过业务逻辑追踪数据
    • 使用DBSIZE监控总体key数量
  3. 集群模式连接:连接时必须使用-c参数启用集群模式
  4. 可用命令:TYPE、TTL、EXISTS、RANDOMKEY、OBJECT等命令均可正常使用

五、验证命令清单

连接方式

# 设置kubeconfigexportKUBECONFIG=/bpx/.148-admin.conf# 分片集群连接(需要 -c 参数)kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c# 哨兵环境连接(不需要 -c 参数)kubectlexec-n qfusion-admin drc-redis-147885f8-0 -c redis --\redis-cli --user default -a'bqqkYdb@ggdpX60f'

注意:需要在Pod中指定容器-c redis,因为Redis Pod包含多个容器

Key管理命令实际执行示例

# 1. 查看key总数(推荐)kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c DBSIZE# 2. 查看所有key(已禁用)kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c KEYS"verify:*"# 返回: ERR unknown command# 3. 增量遍历key(已禁用)kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c SCAN0MATCH"verify:*"# 返回: ERR unknown command# 4. 查看key类型(可用)kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c TYPE verify:cluster:string# 5. 查看key过期时间(可用)kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c TTL verify:cluster:string# 6. 随机获取一个key(可用)kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c RANDOMKEY# 7. 检查key是否存在(可用)kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c EXISTS verify:cluster:string# 8. 查看内部编码(可用)kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c OBJECT ENCODING verify:cluster:string# 9. 字符串长度(可用)kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c STRLEN verify:cluster:string# 10. Hash获取所有字段(可用)kubectlexec-n qfusion-admin drc-redis-147885f8-0 -c redis --\redis-cli --user default -a'bqqkYdb@ggdpX60f'HGETALL verify:sentinel:hash# 11. 有序集合范围查询(可用)kubectlexec-n qfusion-admin drc-redis-2ffca4ed-0-0 -c redis --\redis-cli --user default -a'ff23@PfGnbgifklf'-c ZRANGE verify:cluster:zset0-1 WITHSCORES

命令快速参考

命令语法可用性用途
DBSIZEDBSIZE查看当前数据库key总数
KEYSKEYS pattern查看匹配的所有key(已禁用)
SCANSCAN cursor [MATCH] [COUNT]增量遍历key(已禁用)
TYPETYPE key查看key的数据类型
TTLTTL key查看key的剩余过期时间
RANDOMKEYRANDOMKEY随机返回一个key
EXISTSEXISTS key检查key是否存在
OBJECTOBJECT subcommand key查看key的内部信息
STRLENSTRLEN key获取字符串长度
GETGET key获取字符串值
HGETALLHGETALL key获取hash所有字段
ZRANGEZRANGE key start stop [WITHSCORES]有序集合范围查询

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1191458.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LoadRunner性能测试系统学习教程:工具介绍(上)

在使用LoadRunner进行性能测试时,需要先了解LoadRunner的工作原理、工作过程和内部结构,这样可以对其有一个整体的了解和概要的认识。 主要包括以下内容: LoadRunner简介 LoadRunner工作原理 LoadRunner工作过程 LoadRunner内部结构 LoadRunner性能测试步骤…

AXI DMA在Zynq实时信号处理系统中的部署案例

AXI DMA在Zynq平台构建实时信号处理系统的实战解析你有没有遇到过这样的场景:FPGA逻辑已经跑出100 MSPS的ADC数据流,滤波和FFT也都在PL端高效完成,结果一到ARM端做后续分析就卡顿、丢帧、CPU飙到90%以上?这并不是算法不够强&#…

PCIe高速信号布线:PCB Layout项目应用解析

PCIe高速信号布线实战:从理论到落地的PCB设计全解析最近在调试一块服务器主板时,遇到了一个典型的PCIe Gen4误码问题——眼图几乎闭合,BER(误码率)远超容限。经过三天排查,最终发现根源竟然是差分对跨了电源…

麒麟操作系统 ARM vs x86 架构深度对比分析报告

目录麒麟操作系统 ARM vs x86 架构深度对比分析报告执行摘要关键发现一、CPU微架构深度对比1.1 基本信息x86_64 Intel Xeon E5-2696 v4aarch64 HiSilicon Kunpeng-9201.2 缓存结构对比1.3 指令集特性对比x86_64 指令集aarch64 指令集1.4 指令集架构差异分析CISC vs RISC向量计算…

Multisim14.2安装教程图解:一步步完成环境初始化

Multisim 14.2 安装实战指南:从零搭建稳定仿真环境 你是不是也曾在电脑上兴冲冲地打开 Multisim 安装包,结果弹出一堆错误提示——“许可证未找到”、“数据库初始化失败”、“应用程序无法启动”?明明步骤都照着教程来了,怎么就是…

Proteus中步进电机驱动电路与51单片机协同设计解析

51单片机ULN2003驱动步进电机:从Proteus仿真到实战的完整闭环你有没有过这样的经历?为了调通一个步进电机,焊了一块板子,结果一上电,电机抖了几下就停了。查电源、换驱动、重烧程序……折腾半天才发现是相序接反了。这…

AI 短剧平台的 “保命符”:高防 IP 如何抵御流量攻击与业务中断风险

AI短剧行业的爆发式增长,使其成为网络攻击的新目标。这类平台多依赖实时播放、付费转化变现,一旦遭遇攻击导致业务中断,每小时损失可达数万元。2025年快手1222攻击事件警示,黑灰产已能用AI驱动1.7万个账号发起规模化攻击&#xff…

如何将conda环境,包含该环境的python包进行复制和迁移

本教程主要是应用在一个conda环境下,已经通过pip安装了一些python库 由于pip安装的时候,python库被安装在了用户目录之下,尽管当初选择的是conda环境 所以,如果单纯的对conda环境进行打包操作的话,已经下载的pyth…

【2026年精选毕业设计:校园二手教材循环平台(含论文+源码+PPT+开题报告+任务书+答辩讲解)】

2026年精选毕业设计:校园二手教材循环平台(含论文源码PPT开题报告任务书答辩讲解)✅ 全套资源免费提供:毕业论文(WordPDF)、前后端源码、答辩PPT、开题报告、任务书、数据库脚本、部署文档、演示视频 &…

安达发|给保健品生产上“最强大脑”:高级排产软件玩转复杂生产

在保健品行业面临监管趋严、消费需求多元化与市场竞争白热化的三重压力下,生产效率与合规性已成为企业生存发展的生命线。传统的生产计划模式依赖人工经验,在面对复杂的原料批次管理、频繁的配方调整、严格的质量追溯要求时,往往力不从心&…

博客园cli开发

cli由博客园已开发,使用起来的感觉怪怪的,现已完成部分重构,open api的主要功能是管理自己的内容,一部分api不能使用,导致实现某些逻辑困难。期待博客园api的完善。作者: 咕咚!出处:https://www.cnblogs.com/l…

ProfiNet转DeviceNet工业网关提升工业产线PLC与从站设备通讯响应速度

一、改造背景 某大型乘用车零部件制造商的发动机缸体加工流水线已运行 8 年,随着新型加工设备和检测系统的引入,原分散式继电器控制模式弊端凸显。负责气缸驱动的 SMC VQ1000-DN 电磁阀采用传统硬接线连接,接线复杂…

2026企业前台接待机器人选购指南:首推猎户星空豹小秘系列

随着具身智能与边缘计算技术的成熟,商用服务机器人已从单纯的科技展示品转变为企业数字化转型的基础设施,行业应用前景广阔且务实。对于希望提升前台接待效率、优化品牌形象的企业而言,当前市场已提供了成熟的自动化…

risc-v五级流水线cpu新手教程:从取指到写回全流程

从零构建RISC-V五级流水线CPU:一个工程师的实战手记最近在带几位实习生做FPGA上的软核处理器项目,发现很多人对“流水线”三个字既熟悉又陌生——背得出口IF、ID、EX、MEM、WB五个阶段名称,但真要写一段能跑通lw和add指令的Verilog代码时&…

在线电路仿真实现RC滤波器设计的实战案例

用浏览器就能搞懂RC滤波器:在线仿真实战全解析 你有没有过这样的经历? 学完《模拟电子技术》里的RC滤波器章节,公式背得滚瓜烂熟——“截止频率是 $ f_c \frac{1}{2\pi RC} $”,可一到实际应用就懵了:为什么信号还是…

提升效率:Multisim14.0与Ultiboard联合调试方法论

从仿真到布板:如何用 Multisim14.0 与 Ultiboard 打通设计闭环? 你有没有经历过这样的场景? 电路在 Multisim 里跑得完美无瑕,波形干净利落,功能逻辑严丝合缝。可一拿到打样回来的 PCB 板,上电测试却发现信…

安达发|电动工具智造进阶:APS自动排产软件,让效率“自驱动”

在电动工具行业,生产计划的安排就像是一场精密的交响乐演奏,每一个环节都需要精准配合,才能奏出高效生产的美妙乐章。而APS自动排产软件,无疑就是这场演奏中的“指挥家”,引领着电动工具企业迈向生产管理的新高度。电动…

VLA技术颠覆具身智能!从架构到落地,解锁机器人与自动驾驶的统一大脑密码

摘要:本报告涵盖了 VLA(视觉 - 语言 - 动作模型)的技术架构、核心组件、产业实践、进化路径与落地挑战,以及理想 MindVLA、小米 ORION 等标杆方案,为 AI 技术从业者、机器人 / 自动驾驶企业决策者、投资者提供全景式技…

ES安装配置:Docker Compose应用完整示例

5分钟搭建Elasticsearch集群:Docker Compose实战指南你有没有遇到过这样的场景?项目刚启动,后端同事说“需要连ES查日志”,前端同学要验证搜索建议,测试组等着跑自动化用例——可本地连个像样的Elasticsearch环境都没有…

数字频率计设计硬件架构:全面讲解其电路组成与信号路径

从信号到读数:深入拆解数字频率计的硬件设计精髓你有没有遇到过这样的场景?手里的示波器只能粗略估读频率,而项目又急需一个高精度、实时响应、可定制化的测频方案。这时候,数字频率计就成了工程师手中的“黄金标尺”。但别被它的…