Redis哈希结构场景
时间:2026-10-18 07:17 作者:emer 分类: 无
Redis哈希结构场景
引言
Redis Hash(哈希)适合存储对象类数据,类似数据库单行记录。相比把对象序列化为JSON字符串存储,Hash可以单独读写某个字段,不用整体读取修改,适合用户资料、商品基础信息这类场景。
Hash基础命令
# 设置单个字段
HSET user:100 name "test" age 20
# 获取单个字段
HGET user:100 name
# 获取全部字段
HGETALL user:100
# 删除字段
HDEL user:100 age
PHP操作示例
<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$key = 'user:100';
$redis->hMSet($key,[
'name'=>'admin',
'phone'=>'13800138000'
]);
$info = $redis->hGetAll($key);
print_r($info);
适用与不适用场景
✅ 适合:用户资料、商品基础属性,需要局部更新字段
❌ 不适合:字段数量超大、海量对象;大量独立统计计数,推荐单独key
注意事项
Redis Hash有底层ziplist编码,字段少、值小的时候内存占用极低。当字段数量或者value超过阈值,会转为hash表,内存占用上升。不要在单个hash里面存放成千上万的字段。
总结
Hash是Redis高频数据结构,适合存储结构化小对象,可以局部读写字段,避免JSON字符串每次全量读写。根据业务字段数量合理选择,不要滥用。