更简单、更全面、更详细的学习redis哈希
mhr18 2024-11-14 16:25 21 浏览 0 评论
上节课我们学习了Redis的常用数据类型-字符串,我们知道redis支持字符串(strings)、哈希值(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)、bitmaps、hyperloglogs等,这节课我们详细地来学习一下Redis数据类型-哈希(hashes)本章节对应的视频教程已发布到“权威PHP”公众号,想观看视频教程的同学可以到“权威PHP”公众号观看。
哈希(hash)在redis中也是以key/value的形式进行存储数据,hash中的value也是一个key/value的集合体,意思就是hash中的value值也是由多个key、value键值对组合成的。相信大家经常会看到一句话“哈希(hash)特别适合用于存储对象”,就是因为hash的value是由多个key、value键值对组合成,适于存储对象的属性和属性值。以下是给大家整理出来的哈希常用操作命令列表:
hset:设置指定key(键)对应的哈希集合中指定字段值
hmset:同时设置指定key对应的哈希集合中多个指定字段值
hsetnx:设置指定key对应的哈希集合中不存在的字段值
hget:获取指定key对应哈希集合中某字段的值
hmget:同时获取指定key对应哈希集合中多个字段的值
hgetall:获取指定key对应哈希集合中全部字段及字段值
hincrby:增加指定key 对应哈希集合中指定字段的数值
hkeys:获取指定key对应哈希集合中所有字段名
hvals:获取指定key对应哈希集合中所有字段对应值
hexists:判断指定key对应哈希集合中是否存在指定的字段
hlen:获取指定key对应哈希集合中字段数量
hstrlen:获取指定key对应哈希集合中字段value的字符串长度
hdel:删除指定key对应哈希集合中指定的字段内容
全文关键词说明:
1、本文中说的键均指哈希key ,哈希值存储样例标注:
key : {field1:value1,field2:value2}
2、本文中说的哈希集合均指哈希key对应的value,样例中标注:
key :{field1:value1,field2:value2}
3、本文中说的字段均指哈希集合中的key ,样例中标注:
key : {field1:value1,field2:value2}
4、本文中说的字段值均指哈希集合中的value,样例中标注:
key : {field1:value1,field2:value2}
1、hset : 设置指定key(键)对应的哈希集中指定字段值
命令格式:hset key field value
命令参数:
hset 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
value 存储在哈希集合中的字段值
hset 操作的哈希键不存在时会默认新增,然后保存哈希的键和值!设置指定键对应的哈希集合中的字段不存在则新增返回1,如果字段在哈希集合中已存在会覆盖原来字段值。返回0.
2、hmset : 同时设置指定key对应的哈希集合中多个指定字段值
命令格式:hmset key field1 value1 field2 value2 .....
命令参数:
hmset 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
value 存储在哈希集合中的字段值
hmset 操作的哈希键不存在时会默认新增,然后保存哈希的键和值!设置指定键对应的哈希集合中的字段不存在则新增,如果字段在哈希集合中已存在会覆盖原来字段值。注意设置的字段和字段值必须成对出现!
3、hsetnx : 设置指定key对应的哈希集合中不存在的字段值
命令格式:hsetnx key field value
命令参数:
hsetnx 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
value 存储在哈希集合中的字段值
hsetnx 操作的哈希键不存在时会默认新增,然后保存哈希的键和值!设置指定键对应的哈希集合中的字段不存在则新增,如果字段在哈希集合中已存在则放弃操作。
4、hget : 获取指定key对应哈希集合中某字段的值
命令格式:hget key field
命令参数:
hget 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
5、hmget : 同时获取指定key对应哈希集合中多个字段的值
命令格式:hmget key field1 field2 ......
命令参数:
hmget 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
6、hgetall : 获取指定key对应哈希集合中全部字段及字段值
命令格式:hgetall key
命令参数:
hgetall 命令
key 字符串在redis中存储的(哈希)键
7、hincrby : 增加指定key 对应哈希集合中指定字段的数值
命令格式:hincrby key field incrment
命令参数:
hincrby 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
incrment 给存储在哈希集合中数字字段值增加的数
hash操作中提供了hincrby命令,没有像字符串提供那么多对数字操作的命令(hincr、hdecr、hdecrby这些都不存在)。使用hincrby可以增加指定数字也可以减去指定数字,减去使用负数即可。注意hincrby命令不用于字段值为非数字的字符串。
8、hkeys : 获取指定key对应哈希集合中所有字段名
命令格式:hkeys key
命令参数:
hkeys 命令
key 字符串在redis中存储的(哈希)键
9、hvals : 获取指定key对应哈希集合中所有字段对应值
命令格式:hvals key
命令参数:
hvals 命令
key 字符串在redis中存储的(哈希)键
10、hexists : 判断指定key对应哈希集合中是否存在指定的字段
命令格式:hexists key field
命令参数:
hexists 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
注意:hexists操作不存在的哈希key时仍然为空,显示字段不存在。
11、hlen : 获取指定key对应哈希集合中字段数量
命令格式:hlen key
命令参数:
hlen 命令
key 字符串在redis中存储的(哈希)键
12、hstrlen : 获取指定key对应哈希集合中字段value的字符串长度
命令格式:hstrlen key field
命令参数:
hstrlen 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
13、hdel : 删除指定key对应哈希集合中指定的字段内容
命令格式:hdel key field
命令参数:
hdel 命令
key 字符串在redis中存储的(哈希)键
field 存储在哈希集合中的字段名
写到这里hash的常用操作命令就给介绍完了,命令虽然简单想要牢固掌握还需要你动动手自己练习练习哦!想观看本章节对应的视频教程,请到“权威PHP”公众号上观看吧!
推荐阅读文章:
Redis数据类型-字符串详解
轻松搞定Redis的安装
本公众号推送的所有文章都是个人整理不存在抄袭,主要参考资料都来源各技术官方文档及个人学习笔记。交流微信号:QIU15510135007,识别下方二维码关注公众号持续获取更多学习内容!
相关推荐
- WOT2016彭哲夫:科班出身开发者对运维人员的期许
-
“运维与开发”是老生常谈的话题,前几天和一个运维人聊天,TA说一些公司运维岗位都不公开招聘了,这让众多运维人员情何以堪?是运维的岗位真的饱和了?是找到合适的运维人才难?还是有这样那样的因素?带着这些疑...
- Java程序员最常用的20%技术总结(java程序员要掌握什么)
-
我听说编程语言,经常使用的是其中20%的技术。在Java这门语言中,这20%包括哪些内容?找到一份Java初级程序员的工作,有哪些是必须掌握的,有哪些是可以现学现卖的?一个完整的Javaweb项目,有...
- 秒杀系统实战(四)| 缓存与数据库双写一致性实战
-
前言微笑挖坑,努力填坑。————已经拥有黑眼圈,但还没学会小猪老师时间管理学的蛮三刀同学本文是秒杀系统的第四篇,我们来讨论秒杀系统中「缓存热点数据」的问题,进一步延伸到数据库和缓存的...
- 头条评论精灵翻牌子(头条评论精灵翻牌子怎么弄)
-
关于“头条评论精灵翻牌子”功能,这通常是指平台通过算法或运营手段,将用户的优质评论随机或定向推送到更显眼的位置(如信息流顶部、独立曝光位等),以提升互动率和用户参与感。以下是详细解析和建议:一、功能理...
- 15个程序员们都应该知道的大模型高级提示词指令模板和示例
-
作为程序员你如何写大模型指令?你写的指令是不是更专业呢?下面是15个程序员使用的专业的大模型指令,如果早知道可以能节省你很多时间。这些指令可以用在chatgpt,deepseek等大模型。1.一键...
- MyBatis-Plus内置的主键生成策略有大坑,要注意!
-
昨天小伙伴使用Mybaits-Plus开发的项目线上(集群、K8S)出现了主键重复问题,其报错如下:Mybatis-Plus启动时会通过com.baomidou.mybatisplus.core.to...
- 在开发中遇到过抢票逻辑难题吗?Spring Boot3 并发抢票核心技术
-
你在开发中有没有遇到过抢票逻辑实现的难题?每到热门演唱会、春运车票开抢的时刻,互联网上总是会出现系统崩溃、超卖等问题。对于咱们互联网大厂后端开发人员来说,如何在高并发场景下,实现一套可靠且高效的抢票逻...
- MySQL 客服双表架构:构建智能工单处理系统的实战指南
-
MySQL工单与日志双表封神:超时提醒自动推送不求人客服系统实战:MySQL触发器让工单状态自动流转MySQL狠招:三行代码搞定百万级工单优先级计算服务工单与处理记录联动:MySQL黄金搭档解决客户投...
- ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)
-
前言今天就来介绍一下ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)哈希表介绍哈希表就是一种以键-值(key-indexed)存储数据的结构,我们只要输入待查找的值即ke...
- Java 面试题:乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
-
乐观锁与悲观锁的对比及实现方式一、核心概念对比维度悲观锁乐观锁设计理念假设并发冲突必然发生,预先加锁防止数据修改假设并发冲突较少发生,提交时检测冲突适用场景写操作频繁,数据竞争激烈读多写少,冲突概率低...
- 15. 性能优化(性能优化什么意思)
-
本章深入探讨Go语言性能优化的核心方法论,结合底层原理与生产实践经验,提供从诊断到调优的完整解决方案。15.1内存管理15.1.1逃逸分析优化#查看变量逃逸情况gobuild-gcflag...
- 单体应用到分布式再到微服务,用户认证和授权机制的演进史
-
Web应用和用户的身份验证息息相关,从单一服务器架构到分布式服务架构再到微服务架构,用户安全认证和授权的机制也一直在演进,下文对各个架构下的认证机制做个总结。单一服务器架构该架构下后端只有一台服务器提...
- 初试AspectJ切面编程(AOP)(aop切面编程现实举例)
-
AspectJ框架是什么AspectJ框架是一个用于面向切面编程(AOP)的框架。它是基于Java语言的扩展,提供了更强大和灵活的AOP功能。AspectJ可以在编译时或者运行时织入代码,以实现横切关...
- 2023级网络安全岗面试题及面试经验分享
-
目录致谢0x00字节跳动-渗透测试实习生0x010x02深信服-漏洞研究员实习0x030x04字节跳动-安全研究实习生0x05长亭科技-安全服务工程师0x06天融信面试复盘0x07腾讯-安...
- mysql之性能优化:优化 MySQL 查询性能的方法
-
优化MySQL查询性能的方法MySQL是目前最流行的关系型数据库之一,但是在处理大型数据集合时,性能瓶颈可能会成为问题。为了解决这些性能问题,下面是一些优化MySQL查询性能的方法。1.索...
你 发表评论:
欢迎- 一周热门
-
-
Redis客户端 Jedis 与 Lettuce
-
高并发架构系列:Redis并发竞争key的解决方案详解
-
redis如何防止并发(redis如何防止高并发)
-
开源推荐:如何实现的一个高性能 Redis 服务器
-
redis安装与调优部署文档(WinServer)
-
Redis 入门 - 安装最全讲解(Windows、Linux、Docker)
-
一文带你了解 Redis 的发布与订阅的底层原理
-
Redis如何应对并发访问(redis控制并发量)
-
oracle数据库查询Sql语句是否使用索引及常见的索引失效的情况
-
Java SE Development Kit 8u441下载地址【windows版本】
-
- 最近发表
-
- WOT2016彭哲夫:科班出身开发者对运维人员的期许
- Java程序员最常用的20%技术总结(java程序员要掌握什么)
- 秒杀系统实战(四)| 缓存与数据库双写一致性实战
- 头条评论精灵翻牌子(头条评论精灵翻牌子怎么弄)
- 15个程序员们都应该知道的大模型高级提示词指令模板和示例
- MyBatis-Plus内置的主键生成策略有大坑,要注意!
- 在开发中遇到过抢票逻辑难题吗?Spring Boot3 并发抢票核心技术
- MySQL 客服双表架构:构建智能工单处理系统的实战指南
- ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)
- Java 面试题:乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
- 标签列表
-
- oracle位图索引 (63)
- oracle批量插入数据 (62)
- oracle事务隔离级别 (53)
- oracle 空为0 (50)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)