Redis 中 Hash 的基本使用 | 学习笔记

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 快速学习 Redis 中 Hash 的基本使用

开发者学堂课程【Go语言核心编程 - 面向对象、文件、单元测试、反射、TCP编程Redis 中 Hash 的基本使用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/626/detail/9786


Redis 中 Hash 的基本使用

 

内容介绍

一、哈希的基本介绍

二、哈希基本案例的讲解

 

一、哈希的基本介绍

哈希是一个人的名字。哈希这个人如此有名是因为他搞了一个哈希算法。哈希类似于 golang 里面的 map 这种结构。刚才所见的字符串是非常简单的。在 redis 里面去保留一个人的信息,如果把分身去掉是不行的。当时在讲 go 语言的时候也是这样讲的,单个数据类型是不行的。Redis 的设计者想一定会有人去描绘一个相对综合的数据,这个时候就搞了一个哈希。哈希是一个键值对的集合,而 map 本质上也是一个键值对的集合。如果 user1 是 map 的名字,那么哈希的名字就是 user1。Redis hash 是一个 string 类型的 field 和 value 的映射表,哈希特别适合用于存储对象,反过来就是特别适合存放结构体。在 golang 里面对象就是用结构体体现出来的,其实以后若是存结构体就可以这样做。

 

二、哈希基本案例的讲解

举例:存放一个 user 信息:(user1)

user1 name “Smith ”age30 golang “coder”

说明:  key:user1   name Smith 和 age30 就是两队 field-value

若是要求在 redis 里面存放一个 user 信息,这个 user 的名字就叫 user1。这个 user 里面有名字为 Smith,它的年龄是30岁,另外假设他的工作为 golang 开发工程师。如果在 golang 里面去定义肯定会选择 map,但也可能选择其他的,或者是放一个结构体。这个时候在 redis 中可以用哈希来保存。首先往里面放这个哈希怎么存呢?它的指令发生变化。前面放字符串的时候用的是 set。如果放哈希这个结构则要 hset。前面的 h 代表的是哈希的意思。现在来演示一下。

127.0.0.1:6379>hset user1 name “Smith”1

127.0.0.1:6379>hset user1 age 301

127.0.0.1:6379>hset user1 job “golang coder”1

127.0.0.1:6379>hget user1 name “Smith”

127.0.0.1:6379>hget user1 age 30

127.0.0.1:6379>hget user1 job “golang coder”

这两对引号可以给也可以不给。这个写完过后回车就可以了。把年龄再写一次。这个 user1 还有一个必要的 value 就是工作岗位,它是 golang 工程师。当然它也可以一次性的写。获取的话这里有一个 hget。比如写一个 user1,取得 user1 里面的名字,一回车 smith 就找到了。如果要取他的年龄,user1 年龄为 age,也取到了是三十岁。可以看到给出一个整数也是无用的,等到它存到 redis 里面就都变成字符串了,它本质都是字符串。Redis 在内存操作上的速度是非常快的,这也是 Redis 非常流行的原因。前三个分别为存放姓名、年龄、工作,后三个就分别是获取姓名、年龄和工作。这说明当把数据存放到 redis 就都变成了字符串。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3月前
|
存储 NoSQL Java
Redis如何处理Hash冲突?
在 Redis 中,哈希表是一种常见的数据结构,通常用于存储对象的属性,对于哈希表,最常遇到的是哈希冲突,那么,当 Redis遇到Hash冲突会如何处理?这篇文章,我们将详细介绍Redis如何处理哈希冲突,并探讨其性能和实现细节。
88 1
|
3月前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
178 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
3月前
|
存储 NoSQL Redis
Redis 哈希(Hash)
10月更文挑战第16天
56 1
|
3月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
407 3
|
3月前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
51 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
3月前
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
39 3
|
3月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
35 3
|
3月前
|
NoSQL 关系型数据库 MySQL
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
本文全面阐述了Redis事务的特性、原理、具体命令操作,指出Redis事务具有原子性但不保证一致性、持久性和隔离性,并解释了Redis事务的适用场景和WATCH命令的乐观锁机制。
459 0
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
|
4月前
|
存储 JSON NoSQL
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
这篇文章是关于Redis基本数据结构的学习笔记,包括了String、Hash、Set、List和SortedSet的介绍和常用命令。文章解释了每种数据结构的特点和使用场景,并通过命令示例演示了如何在Redis中操作这些数据结构。此外,还提供了一些练习示例,帮助读者更好地理解和应用这些数据结构。
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
|
3月前
|
NoSQL Redis
redis学习五、错误总结,redis正常运行时后会出现一些bug 总结。
本文介绍了Redis在正常运行时可能遇到的一个错误,即无法进行磁盘持久化的问题,并提供了通过设置`stop-writes-on-bgsave-error`为`no`来解决这一问题的方案。
152 0
下一篇
开通oss服务