【Redis】哈希类型命令、编码方式及应用场景

哈希类型

与字符串的区别,相当于在value中又增加了键值对,套娃

命令


  • 修改:hmget key field、hmset key field value field value,图上少了个key

编码方式

哈希的内部编码方式有两种:

  • ziplist(压缩列表)

    当哈希类型元素个数小于 Redis 的默认值配置时,而且所有的value都小于 Redis 的默认值配置时,Redis 就会使用ziplist作为哈希的内部实现,能更加节省内存(前提是满足上述两个条件);普通的哈希表,数组上会有些位置有元素,有些没有,那就会浪费一定的空间。

    但ziplist的读写速度是比hashtable要慢的

  • hashtable(哈希表)

    当ziplist无法满足存储时,Redis 使用哈希表作为哈希的内部实现,ziplist存的多了读写效率就下降了,而hashtable的读写速度复杂度为o(1)

应用场景

  1. 作为缓存,存储结构化的数据,除了可以用String方式,也能用哈希

    String 类型,如JSON格式,如果要修改特定的值,就需要整个取出来,对某一属性进行修改,再存回去

    若哈希方式存储,则可以单独取出对象属性,更加方便

使用hash方式,确实读写field更加直观高效,但也付出了内存空间代价,故要合理分配

  1. 与数据库不同的稀疏性
  • 哈希类型是稀疏的,而关系型数据库(MySQL等)是完全结构化的,例如哈希每个键都可以拥有不同的field,而MySQL等想要添加新的一列,那每一行都要为其设置值
  • 关系型数据库更加适合做复杂的关系联合查询
相关推荐
我不是程序员三三12 小时前
如何监控电脑|企业终端行为监控概念科普与落地方法论
数据库·电脑·php
lhldsg13 小时前
全民健身解决方案软件开发实战:从架构设计到部署指南
java·前端·数据库·小程序
我是大猴子13 小时前
线上耗时问题排查
数据库
小码过河.13 小时前
oceanbase中zone和observer、分区表之间关系
前端·数据库·oceanbase
其实防守也摸鱼14 小时前
OpenClaw Windows 踩坑实战指南
运维·服务器·数据库·windows·github·copilot
SelectDB14 小时前
Apache Doris+ Paimon 2.0:构建 Agentic AI 数据闭环
大数据·数据库·数据分析
麦聪聊数据14 小时前
全链路数据安全防护(中):入口、权限、审计,筑牢安全管控铁三角
数据库
山岚的运维笔记14 小时前
mysql 专业笔记 -- 第 17 章:连接:连接三个具有相同名称 ID 的表
运维·数据库·笔记·后端·学习·mysql·dba
YangYang9YangYan14 小时前
校招视角|财务数字化岗位 SQL、工具、项目完整备考指南
大数据·数据库·sql
bksczm14 小时前
从 “什么是 MySQL“ 到库与表的完整操作(MySQL基础篇)
linux·数据库·mysql