Redis 从入门到精通(五):哈希操作详解

系列导读:本篇将深入讲解 Redis 哈希(Hash)的所有操作命令及实际应用场景。


文章目录


一、哈希命令总览

命令 说明
HSET/HGET 设置/获取字段
HMSET/HMGET 批量设置/获取
HGETALL 获取所有字段
HDEL 删除字段
HEXISTS 检查字段存在
HINCRBY 字段递增
HKEYS/HVALS 获取所有键/值

二、基础操作命令

2.1 设置与获取

bash 复制代码
# 设置单个字段
HSET user:1001 name "张三"

# 设置多个字段
HMSET user:1001 name "张三" age 25 city "北京"

# 获取单个字段
HGET user:1001 name

# 获取多个字段
HMGET user:1001 name age

# 获取所有字段
HGETALL user:1001

2.2 删除与检查

bash 复制代码
# 删除字段
HDEL user:1001 city

# 检查字段存在
HEXISTS user:1001 name  # 1存在 0不存在

# 仅当不存在时设置
HSETNX user:1001 email "test@example.com"

三、高级操作命令

3.1 数值操作

bash 复制代码
# 整数递增
HINCRBY user:1001 age 1

# 浮点递增
HINCRBYFLOAT user:1001 score 0.5

3.2 获取信息

bash 复制代码
# 获取所有字段名
HKEYS user:1001

# 获取所有字段值
HVALS user:1001

# 获取字段数量
HLEN user:1001

3.3 迭代遍历

bash 复制代码
# 渐进式遍历
HSCAN user:1001 0 MATCH field:* COUNT 10

四、实战应用场景

4.1 存储对象

bash 复制代码
# 用户信息
HMSET user:1001 name "张三" age 25 email "zhang@example.com"

# 商品信息
HMSET product:2001 name "iPhone" price 6999 stock 100

4.2 购物车

bash 复制代码
# 添加商品
HSET cart:user:1001 product:2001 2
HSET cart:user:1001 product:2002 1

# 增加数量
HINCRBY cart:user:1001 product:2001 1

# 获取购物车
HGETALL cart:user:1001

# 删除商品
HDEL cart:user:1001 product:2002

4.3 计数器

bash 复制代码
# 文章统计
HMSET article:100 views 100 likes 10 comments 5
HINCRBY article:100 views 1

总结

本文我们学习了:

基础操作 :HSET/HGET/HMSET/HGETALL

高级操作 :HINCRBY/HSCAN

应用场景:对象存储、购物车、计数器

下篇预告Redis 从入门到精通(六):列表操作详解


作者 :刘~浪地球
系列 :Redis 从入门到精通(五)
更新时间:2026-04-04

相关推荐
z44247532616 小时前
HTML函数开发用旋转屏有优势吗_特殊硬件形态适配说明【方法】
jvm·数据库·python
2501_9142459316 小时前
SQL如何统计分组内满足条件的唯一项_COUNT与DISTINCT
jvm·数据库·python
chen_ever16 小时前
Redis详解|从基础到面试高频题
数据库·redis·后端·缓存
弱水三千 只取一瓢饮16 小时前
sqlserver 从数据库A的备份文件,还原到数据库B中
数据库·sqlserver
池佳齐16 小时前
软考高级系统架构设计师备考(十八):数据库系统—事务管理与并发控制
数据库·oracle·系统架构
数智化精益手记局16 小时前
8d报告案例分析:拆解8d报告案例分析的8个步骤,解决生产现场重复发生的质量难题
大数据·数据结构·数据库·人工智能·精益工程
AI人工智能+电脑小能手16 小时前
【大白话说Java面试题】【Java基础篇】第10题:HashMap中的元素是有序存放的吗
java·开发语言·数据结构·后端·面试·哈希算法·哈希表
qq_1898070316 小时前
C#怎么操作数据库存储过程 C#如何调用SQL Server存储过程传参并获取返回结果【数据库】
jvm·数据库·python
m0_7467523016 小时前
HTML5视频标签针对不同设备DPR的资源选择逻辑
jvm·数据库·python
2301_7735536216 小时前
c++怎么在Linux下获取文件被最后一次访问的精确纳秒时间【进阶】
jvm·数据库·python