Redis Hash类型数据常用命令总结<转>

本文详细介绍了Redis中Hash类型数据的存储方法及常用命令,包括hset、hget、hsetnx、hmset、hmget、hgetall等,通过实例展示了如何高效地进行键值对的增删查改。
Redis Hash类型数据常用命令总结
 
Hash是一种数据结构,一般翻译做“散列”,也有直接音译为“哈希”。Redis  hash  是一个string类型的field和value的映射表。它特别适合用于存储对象。同将对象的每个字段存成单个string类型,存储为hash类型会占用更少的内存,并且方便的存取整个对象。
 
下面是关于hash类型存储的一些常用方法(命令):
 
1,hset 命令:
 
hset   <key>   <field>    <value>     将hash表中key  的 field域设置为值value。如果key值不存在,操作成功后返回1,如果key值已经存在,则覆盖原来的值,成功后返回0。
 
[plain] 
redis 127.0.0.1:6379> hset user name  'zhangsan'          # 设置值为zhangsan  
(integer) 1  
redis 127.0.0.1:6379> hset user name  'lisi'              # 将值覆盖为lisi  
(integer) 0  
redis 127.0.0.1:6379>  
 2,hget  命令:
hget  <key>   <field>    返回hash表中指定key的field的值。
 
[plain] 
redis 127.0.0.1:6379> hget user name  
"lisi"  
 3,hsetnx 命令:
hsetnx    <key>  <field>   <value>    当且紧当filed域不存在时,设置值为value。如果该域不存在,返回1,如果该域已经存在,则不会执行操作,且返回0。
 
[plain] 
redis 127.0.0.1:6379> hget user name  
"zhangsna"  
redis 127.0.0.1:6379> hsetnx user name 'lisi'  
(integer) 0                                          # 将name域的值设置为lisi时操作失败,因为name域已经存在  
redis 127.0.0.1:6379> hsetnx user age  22<span style="white-space:pre">  </span>     # 将age域的值设置为22,操作成功,应为age域不存在  
(integer) 1  
redis 127.0.0.1:6379> hget user name                 # 取出name的值,并没有被修改  
"zhangsna"  
redis 127.0.0.1:6379> hget user age  
"22"  
redis 127.0.0.1:6379>  
 4,hmset 命令:
hmset    <key>   <field>   <value>  [<field>   <value>...]  同时将多个“域-值”对存储在key键中,如果key不存在会自动创建,如果field已经存在,则会覆盖原来的值。操作成功后返回值OK。
 
[plain] 
redis 127.0.0.1:6379> hmset product name 'computer' price '3200' size '14inch'  
OK  
5,hmget 命令:
hmget   <key>   <field>  [<field>....]  返回hash表中key的一个或者多个域值。如果给定的域名称在此hash表中不存在,则返回nil。
 
[plain] 
redis 127.0.0.1:6379> hmget product name price size contact  
1) "computer"           # name的值  
2) "3200"               # price的值  
3) "14inch"             # size的值  
4) (nil)                # contact的值在hash表中不存在,返回nil  
6,hgetall 命令:
hgetall   <key>    返回hash表中key的所有域的值。
 
[plain] 
redis 127.0.0.1:6379> hgetall product  
1) "name"  
2) "computer"  
3) "price"  
4) "3200"  
5) "size"  
6) "14inch"  
6,hlen 命令:
hlen   <key>  返回hash表中key中所有域的总数。当key值不存在时,返回0.
 
[plain] 
redis 127.0.0.1:6379> hlen product  
(integer) 3          # product中域的数量为3  
redis 127.0.0.1:6379> hlen amimal  
(integer) 0          # 未定义amimal,所以返回的是0  
7,hexists 命令:
hexists  <key>   <field>    查看hash表中,给定key的域field是否存在。如果存在,则返回1,如果field不存在或者是key也不存在,返回0。
 
[plain] 
redis 127.0.0.1:6379> hexists product name  
(integer) 1                             # product中存在name域  
redis 127.0.0.1:6379> hexists product contact  
(integer) 0             # product中不存在contact域  
8,hkeys  命令:
hkeys  <key>    返回所有hash表中的key的所有域。
 
[plain] 
redis 127.0.0.1:6379> hkeys product  
1) "name"  
2) "price"  
3) "size"  
redis 127.0.0.1:6379> hkeys amimal  
(empty list or set)  
redis 127.0.0.1:6379>  
9, hvals 命令:
hvals   <key>  返回所有hash表中的key的所有值。
 
[plain] 
redis 127.0.0.1:6379> hvals product  
1) "computer"  
2) "3200"  
3) "14inch"  
redis 127.0.0.1:6379> hvals amimal  
(empty list or set)  
10, hincrby 命令:
hincrby  <key>    <field>   <increment>   为哈希表 key 中的域 field 的值加上增量 increment 。增量也可以为负数,相当于对给定域进行减法操作。如果 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。如果域 field 不存在,那么在执行命令前,域的值被初始化为 0 。
 
[plain] 
redis 127.0.0.1:6379> hincrby product price 200  
(integer) 3400                              # price增加200  
redis 127.0.0.1:6379> hincrby product final 3200  
(integer) 3200                              # 域final本不存在,初始化为0,然后增加3200  
redis 127.0.0.1:6379> hincrby product price -100  
(integer) 3300                              # price减去100  
11,hdel  命令:
hdel   <key>  <field>  [<field>...]  删除hash表中key的一个或者多个域的值。如果指定的field不存在,则忽略操作。
 
[plain] 
redis 127.0.0.1:6379> hgetall product  
1) "name"  
2) "computer"  
3) "price"  
4) "3300"  
5) "size"  
6) "14inch"  
7) "final"  
8) "3200"  
redis 127.0.0.1:6379> hdel product size  
(integer) 1  
redis 127.0.0.1:6379> hgetall product  
1) "name"  
2) "computer"  
3) "price"  
4) "3300"  
5) "final"  
6) "3200"  
redis 127.0.0.1:6379> hdel product final price  
(integer) 2  
redis 127.0.0.1:6379> hgetall product  
1) "name"  
2) "computer"  
 
【锂离子电池电化学阻抗谱】用于计算不同充电状态下锂离子电池的宽带电化学阻抗谱研究(Matlab代码实现)内容概要:本文档是一份涵盖多个科研领域的Matlab与Python代码实现资源集合,重点围绕锂离子电池电化学阻抗谱展开,详细介绍了在不同充电状态下锂离子电池的宽带电化学阻抗谱计算方法,并提供了完整的Matlab代码实现。此外,文档还包含了电力系统、信号处理、无人机路径规划、机器学习、优化算法等多个方向的技术研究与仿真案例,展示了丰富的工程应用与算法实现,旨在为科研人员提供可复现、可扩展的技术参考与仿真支持。; 适合人群:具备一定编程基础,熟悉Matlab或Python语言,从事电气工程、自动化、能源系统、信号处理、人工智能等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于锂离子电池状态监测与健康评估,提升电池管理系统精度;②为科研项目提供算法仿真与模型构建支持,加速研究进程;③适用于学术论文复现、课程设计、课题开发等场景,强化理论与实践结合能力; 阅读建议:建议读者结合具体研究方向选择相应章节学习,优先掌握电化学阻抗谱的基本原理与代码结构,再逐步扩展至其他技术模块;同时推荐配合提供的网盘资源进行代码调试与实验验证,以加深理解并提升动手能力。
内容概要:腾视科技是一家全球领先的AI算力模组及智能体AGI解决方案提供商,专注于边缘智算平台的研发与应用,产品涵盖AI算力模组、边缘计算终端、机器人域控制器、无人叉车、智慧电网、智能驾驶等解决方案。公司依托英伟达、高通、华为等主流AI芯片,提供1-500TOPS算力范围的硬件产品,并自主研发AI加速引擎OS与分布式调度系统,实现多模态大模型聚合与高效算力调度。其核心技术包括边缘智算大脑、低代码AI开发平台、训推一体平台等,广泛应用于工业制造、智慧交通、智慧电力、智慧城市等多个行业。; 适合人群:从事AI硬件开发、边缘计算、智能系统集成的技术人员及企业决策者,具备一定AI与物联网技术背景的研发人员、产品经理及行业解决方案工程师。; 使用场景及目标:①在工业自动化场景中实现无人叉车的自主导航与多车协同调度;②在智慧电网中实现电缆防护、设备状态监测与隐患智能预警;③在智能驾驶与车载监控领域实现驾驶员行为分析、盲区监测与主动安全预警;④通过AI NAS与边缘计算盒实现家庭或企业本地化大模型部署与数据智能决策。; 阅读建议:本文档为产品宣传手册,重点展示腾视科技的技术架构、产品线与行业解决方案,建议结合具体业务需求关注相应产品参数与应用场景,进一步联系官方获取技术白皮书或测试样机进行验证落地。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值