redis中Hash命令的基础操作

简介: redis中Hash命令的基础操作

redis中Hash命令的基础操作

本文讲解redis中的Hash命令的基础操作。

基础命令

  • HSET key field value:
HSET user:1 name Alice
  • 设置名称为 user:1 的哈希键中,名为 name 的字段对应的值为 Alice。
  • HGET key field:
HGET user:1 name
  • 返回名称为 user:1 的哈希键中,名为 name 的字段所对应的值:Alice。
  • HMSET key field1 value1 [field2 value2 ...]:
HMSET user:1 name Alice gender Female age 26
  • 同时设置用户 user:1 的名字、性别和年龄。
  • HMGET key field1 [field2 ...]:
HMGET user:1 name age
  • 返回名称为 user:1 的哈希键中名为 name 和 age 的两个字段所对应的值:[Alice, 26]。
  • HGETALL key:
HGETALL user:1
  • 返回名称为 user:1 的哈希键中所有字段和值,格式为 “field1 value1 field2 value2…”:name Alice gender Female age 26。
  • HEXISTS key field:
HEXISTS user:1 gender
  • 判断名称为 user:1 的哈希键中是否存在名为 gender 的字段,若存在,则返回 1,否则返回 0。
  • HDEL key field1 [field2 ...]:
HDEL user:1 age
  • 删除名称为 user:1 的哈希键中名为 age 的字段。
  • HINCRBY key field increment:
HSET user:1 score 10
HINCRBY user:1 score 5
  • 将名称为 user:1 的哈希键中名为 score 的字段增加 5,返回增加后的值:15。
  • HKEYS key:
HKEYS user:1
  • 返回名称为 user:1 的哈希键中所有字段名,格式为 “[field1, field2, …]”:[name, gender, score]。
  • HLEN key:
HLEN user:1
  • 返回名称为 user:1 的哈希键中所有字段的数量:3。
  • HSETNX key field value:
HSETNX user:1 name Alice
HSETNX user:1 email alice@example.com
  • 若名称为 user:1 的哈希键中已经存在名为 name 的字段,则不设置 email 字段,否则将 email 字段对应的值设为 alice@example.com。
  • HSTRLEN key field:
HSTRLEN user:1 name
  • 返回名称为 user:1 的哈希键中名为 name 字段所对应的字符串长度。
  • HVALS key:
HVALS user:1
  • 返回名称为 user:1 的哈希键中所有字段对应的值,格式为 “[value1, value2, …]”:[Alice, Female, 15]。
  • HSCAN key cursor [MATCH pattern] [COUNT count]:
HSCAN user:1 0 MATCH *o* COUNT 2
  • 迭代名称为 user:1 的哈希键中以 o 结尾的字段,每次返回 2 个匹配项。

具体应用

哈希键主要用于存储一些具有结构化的数据,比如用户(User)对象、文章(Post)对象、电影(Movie)对象等。下面以用户对象为例,介绍哈希键的一个具体应用场景。

假设某个社交网站上有很多用户,每个用户有以下信息:

  • ID(唯一标识)
  • 用户名
  • 密码
  • 电子邮箱
  • 手机号码
  • 性别
  • 年龄

把这些信息存储在 Redis 中,可以将用户对象表示成一个哈希键。例如,对于 ID 为 1 的用户,可以把他的信息以如下方式存储在 Redis 中:

HSET user:1 username Alice password 123456 email alice@example.com phone 13888888888 gender Female age 26

这样,就创建了一个名为 user:1 的哈希键,并设置了它的所有字段值。如果想要获取 ID 为 1 的用户的用户名,可以使用 HGET 命令:

HGET user:1 username

返回值为 "Alice"。

如果想要获取所有用户的信息,可以使用 HGETALL 命令:

HGETALL user:1

返回值为 "username Alice password 123456 email alice@example.com phone 13888888888 gender Female age 26"。

这样,Redis 可以非常快速地存储和检索用户对象的信息,而且还提供了对对象属性进行增量修改的功能,如 HINCRBY 命令用于将用户键中存储的分数值增加一定数量,以及支持更高级操作,如使用 Lua 脚本批量修改哈希键。在实际应用场景中,哈希键可以被广泛地用于各种数据结构的存储和检索。

相关文章
|
7月前
|
存储 消息中间件 NoSQL
【Redis】常用数据结构之List篇:从常用命令到典型使用场景
本文将系统探讨 Redis List 的核心特性、完整命令体系、底层存储实现以及典型实践场景,为读者构建从理论到应用的完整认知框架,助力开发者在实际业务中高效运用这一数据结构解决问题。
|
7月前
|
存储 缓存 NoSQL
Redis基础命令与数据结构概览
Redis是一个功能强大的键值存储系统,提供了丰富的数据结构以及相应的操作命令来满足现代应用程序对于高速读写和灵活数据处理的需求。通过掌握这些基础命令,开发者能够高效地对Redis进行操作,实现数据存储和管理的高性能方案。
222 12
|
8月前
|
存储 缓存 人工智能
Redis六大常见命令详解:从set/get到过期策略的全方位解析
本文将通过结构化学习路径,帮助读者实现从命令语法掌握到工程化实践落地的能力跃迁,系统性提升 Redis 技术栈的应用水平。
|
9月前
|
NoSQL Redis
Lua脚本协助Redis分布式锁实现命令的原子性
利用Lua脚本确保Redis操作的原子性是分布式锁安全性的关键所在,可以大幅减少由于网络分区、客户端故障等导致的锁无法正确释放的情况,从而在分布式系统中保证数据操作的安全性和一致性。在将这些概念应用于生产环境前,建议深入理解Redis事务与Lua脚本的工作原理以及分布式锁的可能问题和解决方案。
326 8
|
11月前
|
存储 缓存 监控
Redis设计与实现——Redis命令参考与高级特性
Redis 是一个高性能的键值存储系统,支持丰富的数据类型(字符串、列表、哈希、集合等)和多种高级功能。本文档涵盖 Redis 的核心命令分类,包括数据类型操作、事务与脚本、持久化、集群管理、系统监控等。特别介绍了事务的原子性特性、Lua 脚本的执行方式及优势、排序机制、发布订阅模型以及慢查询日志和监视器工具的使用方法。适用于开发者快速掌握 Redis 常用命令及其应用场景,优化系统性能与可靠性。
432 12
|
11月前
|
存储 缓存 NoSQL
Redis中的常用命令-get&set&keys&exists&expire&ttl&type的详细解析
总的来说,这些Redis命令提供了处理存储在内存中的键值对的便捷方式。通过理解和运用它们,你可以更有效地在Redis中操作数据,使其更好地服务于你的应用。
568 17
|
11月前
|
消息中间件 NoSQL Linux
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
1023 16