Redis系列(三)、数据类型之哈希Hash

「 分布式技术 」一致性哈希算法(Hash)详解 在分布式系统中,数据的存储和访问是很重要的问题。为了提高系统的可用性和扩展性,常常需要将数据分布到不同的节点上,而且这些节点也可能会动态地加入或离开集群。一致性哈希算法就是一种常用的解决方案,它可以解决节点的动态变化和负载均衡的问题。本文将深入探讨一致性哈希算法的底层原理,包括其基本思想、关键步骤以及优缺点等,同时结合实际场景进行举例说明。一致性哈希算法是一种用于分布式系统中的数据分片和负载均衡的算法。它将整个哈希空间划分为一个环,并且每个节点在这个环上都有一个对应的位置。 阅读详情

目录

介绍

命令行模式

增

删

改

查

计数

长度

过期 

Python客户端

增

删

改

查

计数

长度

过期


Redis支持五种数据类型:String, Hash, List, Set, ZSet,这个系列介绍一下如何使用这些数据类型,本篇介绍使用命令行模式以及python客户端对redis进行操作,实际项目的过程中也大多是一模一样的用法。

相关内容:

Redis系列(一)、CentOS7下安装Redis6.0.3稳定版

Redis系列(二)、数据类型之字符串String 

------------------------Redis哈希类型----------------------

介绍

哈希类型是指键值对里的value本身存储的也是一个个的KV键值对,类似于python中的dict和java中的map集合。

hash_value={{field1,value1},...{fieldN,valueN}}

hkey-->hvalue

hvalue{k1:v1 ,k2:v2 ,k3:v3...}

命令行模式

进入命令行模式:

redis-cli -a password_value

redis-cli -a password_value --raw
--raw 避免中文显示乱码

 

help

使用下面的命令查看手册:

help @hash

hexists

查看hash类型的key中指定的field是否存在,返回true / false, 1/0

hexists key field

 

增

hset

可设置hash类型的单个field或一次性设置多个field

HSET key field value [field value ...]

hset csdn id 1 name wyk company CSDN
hset csdn gender male

hmset

redis6版本中与hset效果一样

hsetnx

只有value中不存在的field才会被创建,若field已存在则不做任何动作:

HSETNX key field value

删

hdel

使用hdel命令删除hash类型的value中的fields,可批量可单个删除:

HDEL key field1 [field2 ...]

 

改

hset

和上面介绍的使用方式一样,对hash类型中相同的field进行set操作会更新该field的值:

HSET key field value [field value ...]

查

hget

使用hget获取指定hash类型的field对应的值:

HGET key field

 

hmget

使用hget获取指定hash类型的多个field对应的值:

HMGET key field [field ...]

hgetall

使用hgetall获得指定hash类型对象的全部field和对应的value值:

HGETALL key

 

hkeys

使用hkeys获得指定hash类型对象的全部field:

HKEYS key

hvals

使用hvals获得指定hash类型对象的全部field的values值:

HVALS key

计数

hincrby

与string类型中的incrby类似,hincrby可以对hash对象的指定的field的value做递增操作,increment必须是整数(hash类型中没有hdecrby方法,当increment为负数时为递减操作),value必须是integer类型,否则会报对应的错误:

HINCRBY key field increment

#filed对应的value必须是integer类型,increment必须是整数,可以为负

hincrbyfloat

与string类型中的incrbyfloat类似,hincrbyfloat可以对hash对象的指定的field的value做递增操作,increment可以是整数或浮点数(hash类型中没有hdecrbyfloat方法,当increment为负数时为递减操作),value必须是数字类型,否则会报对应的错误:

HINCRBYFLOAT key field increment

#filed对应的value必须是数字类型,increment可以是整数或浮点,可以为负

长度

hlen

hlen返回hash类型中field的数量:

HLEN key

hstrlen

hstrlen返回hash类型中指定filed对应的value的字符长度:

HSTRLEN key field

过期 

expire

我们可以看到hash类型没有hsetex hpsetex一类的方法,想对hash对象做过期策略可以使用全局函数expire,单位为秒:

expire key seconds

Python客户端

下面介绍如何在python客户端实现和上面一样的操作,每个函数的含义不多赘述,在上面都有很详细的介绍了,可以看到在python客户端中的方法与redis命令行中的一样。

增

hset

和redis客户端中的hset不同的是python客户端中的hset只能设置一个field:

hset(self, name, key, value)

hmset

hmset(self, name, mapping)

hsetnx

hsetnx(self, name, key, value)

删

hdel

hdel(self, name, *keys)

改

hset

hset(self, name, key, value)

查

hget

hget(self, name, key)

hmget

hmget(self, name, keys, *args)

hgetall

hgetall(self, name)

hkeys

hkeys(self, name)

hvals

hvals(self, name)

 

计数

hincrby

hincrby(self, name, key, amount=1)

hincrbyfloat

hincrbyfloat(self, name, key, amount=1.0)

 

长度

hlen

hlen(self, name)

hstrlen

hstrlen(self, name, key)

 

过期

expire

expire(self, name, time)
#time单位为秒

 

 

希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!

 

Redis一致性哈希算法和哈希槽区别 一致性哈希算法和哈希槽(Hash Slot)都是在分布式系统中用于数据分片和节点映射的技术,主要应用于像 Redis 集群这样需要将数据分散存储在多个节点的场景。一致性哈希是在哈希取余算法基础之上优化的,分布式缓存数据变动和映射问题,某个机器宕机了,分母数量改变了,自然取余数不对了。用于解决分布式缓存系统中的数据选择节点存储问题和数据选择节点读取问题以及在增删节点后减少数据缓存的消失范畴,防止雪崩的发生。 阅读详情

相关推荐

Redis第九讲 Redis之Hash数据结构Dict字典哈希算法与hash存储过程

Redis第九讲 Redis之Hash数据结构Dict字典哈希算法Redis第九讲 Redis之Hash数据结构Dict字典哈希算法Redis第九讲 Redis之Hash数据结构Dict字典哈希算法

程序员路同学 1410

redis 对hash设置expires

expire只对顶级key有效,不能对hash结构中的某个files设置。

drnrrwfs的博客 911

哈希算法在缓存系统中的应用:Redis哈希表实现

在这个“数据爆炸”的时代,用户对应用响应速度的要求越来越高:刷短视频要秒开,电商下单要“丝滑”,社交聊天要“0延迟”。缓存系统(如Redis)正是解决这一问题的“神兵利器”——它通过将高频数据存储在内存中,避免重复查询数据库,将响应时间从“毫秒级”压缩到“微秒级”。本文的核心是:**哈希算法如何支撑Redis缓存的高性能?**我们将覆盖哈希算法的基础原理、Redis哈希表的底层结构、冲突解决机制,以及Redis独有的“渐进式rehash”优化策略。用“快递分拣中心”的故事引出哈希算法的核心作用;

AI 算法实战派 1069

Redis(三) 数据结构Hash哈希

一 哈希对象简介 几乎所有的编程语言都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组; 哈希又称散列 在Redis中,哈希类型是指键值本身又是一个键值对结构,形如value={{field1,value1},…{fieldN,valueN}},Redis键值对和哈希类型二者的关系可以下图表示 二 常用命令 命令 最好亲自去敲一下。 三、内部编码 哈希类型的内部编码有两种: ziplist(压缩列表):当哈希类型元素个数小于hash-max-ziplist-entries 配置(默认

GreedySnaker的博客 328

AFSim仿真系统中的图像处理器:从静态图像到视频流的目标识别技术解析

本文深入解析了AFSim仿真系统中WSF_IMAGE_PROCESSOR图像处理器的核心功能与技术实现。它详细阐述了该处理器如何从静态图像与视频流中完成目标检测、跟踪与识别,将原始像素数据转化为可供指挥系统使用的轨迹情报,并重点介绍了其基于约翰逊准则的目标识别进阶逻辑、关键参数配置以及脚本扩展能力,为构建高逼真度仿真应用提供了实践指导。

cola5的博客 209

10-142 6-4 查询厂商“D“生产的PC和便携式电脑的平均价格

分数 10全屏浏览题目切换布局作者 lhm单位 河北农业大学本题目要求编写SQL语句,查询厂商D生产的PC和便携式电脑的平均价格。

dqd66的博客 2740

redis的value类型之hash详解

HSET key field value [field value …] Redis Hset 命令用于为存储在 key 中的哈希表的 field 字段赋值 value 。 如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。 如果字段(field)已经存在于哈希表中,旧值将被覆盖。 HGET key field Redis HGET 命令用于返回哈希表中指定字段 field 的值。 HSETNX key field value Redis HSETNX 命令用于为哈希表中不存在的字段赋值 。

weixin_45239670的博客 2248

RGB接口电容触摸屏驱动(二)接口与时序说明

RGB接口电容触摸屏驱动(二)接口与时序说明

杰克拉力船长个人博客 4901

02、Hash数据类型

01、操作 02、Hash与String的主要区别? 1、把所有相关的值聚集到一个key中,节省内存空间 2、只使用一个key,减少key冲突 3、当需要批量获取值的时候,只需要使用一个命令,减少内存/IO/CPU的消耗 03、操作命令 hset key1 f 6 hset key1 e 7 hmset key1 a 5 b 4 c 3 hget key1 f hmget key1 a b c hkeys key1 hvals key1 hgetall key1 h

wangyongxun1983的博客 1304

2026星宸科技数字IC设计笔试带答案

摘要:本文包含四个计算机科学领域的编程与逻辑设计题目解析。第一部分通过C语言程序补充水仙花数判断代码,考查循环结构和函数设计;第二部分分析Verilog代码的D触发器电路,讨论时序约束与时钟频率影响;第三部分详细讲解静态时序分析中的建立/保持时间计算与违例判断;第四部分计算机体系结构题目涉及CPI、MIPS计算和性能加速比分析。最后还包含一个逻辑代数化简的示例,展示基本的布尔代数简化技巧。这些题目全面覆盖了编程基础、数字电路设计、时序分析和计算机性能评估等核心知识点。(149字)

Open 114

V90伺服 EPOS模式下回原(详细配置+SCL源代码)

/ 输出上限 100.0%rSetPoint : Real;// 设置目标值工程量。// 通道转换参考值。Td : Real;

RXXW_Dor的博客 2655

Redis中value常见的五种数据类型

keys * 查看当前库所有的key exists key 判断某个key是否存在 type key 查看你的key是什么类型 del key 删除指定的key数据 unlink key 根据value选择非阻塞删除 expire key 10 10秒钟:为给定的设置过期时间 ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期 select命令切换数据库 select 0 切换到0库 dbsize查看当前数据库的key的数量 flushdb

weixin_71307869的博客 1176

SPICE仿真软件:HSPICE_(22).HSPICE仿真案例分析

通过上述案例分析,我们可以看到HSPICE仿真软件在不同电路类型和仿真场景中的应用。无论是简单的直流分析、交流分析还是复杂的暂态分析,HSPICE都能提供详细的仿真结果,帮助我们更好地理解和优化电路设计。希望这些案例能够为读者提供实用的参考和指导,进一步提升使用HSPICE进行电路仿真的能力。输入文件的编写:确保输入文件格式正确,使用注释来解释每一部分的内容。分析类型的选择:根据电路的特点选择合适的分析类型,如.DC.AC和.TRAN。输出结果的设置:使用.print命令来指定需要输出的节点电压和支路电流。

kkchenjj的博客 1296

redis 获取 hset 所有_Redis系列(三)、数据类型之哈希Hash

Redis支持五种数据类型:String, Hash, List, Set, ZSet,这个系列介绍一下如何使用这些数据类型,本篇介绍使用命令行模式以及python客户端对redis进行操作,实际项目的过程中也大多是一模一样的用法。相关内容:Redis系列(一)、CentOS7下安装Redis6.0.3稳定版Redis系列(二)、数据类型之字符串String--------------...

weixin_33556941的博客 4245

2025届程序技术类笔试题

希尔排序在直接插入排序的基础上进行了改进,它通过比较相距一定间隔的元素来进行,各轮比较所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一轮排序为止。某人逆着水流的方向向岸边划船,每次行进前进x米后需要休息一下,休息期间船会自行倒退y米,每次休息后再次行进,前进距离缩短1/5,若起始距离岸边为m米,问:能否到达岸上,需要行进多少次才能上岸。直接插入排序的原理是将第i个元素插入前面i-1个已排好序的记录中,将比第i个元素大的记录依次向后移动一个位置,将第i个元素插入空位。第二轮相邻比较,后移2次。

博客 588

YOLOV5 自动刷图脚本实战(十五)之如何找到正确的门

DXF是一个2D游戏,我们所看到的人物移动,其实是后面的背景在移动,我们所看到的画面,不过是一个完整背景中的一个镜头视角而已想要正确找到门的坐标,我们需要对不同的地图中的每个房间做一些配置信息。

qq_38892949的博客 2791

redis—Hash哈希

redis数据结构hash介绍。

终为nullptr 2876

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

一致性哈希算法与哈希槽

本文主要介绍了一致性哈希算法的基本原理、容错性和可扩展性、数据倾斜等问题。在此基础上又简单阐述了redis cluster中哈希槽的概念及实现。

若千年后 2487

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Redis数据结构-Hash哈希

ziplist(压缩列表):当哈希类型元素个数小于hash-max-ziplist-entries配置(默认为512个),同时所有值小于hash-max-ziplist-value配置(默认为64个字节)时,Redis会使用ziplist作为哈希的内部实现,ziplist使用更紧凑的结构实现多个元素的连续存储,所以在节省内存方面比hashtable更加优秀,但是读写元素比较慢。几乎所有的主流编程语言都提供了哈希(Hash)类型,它们的叫法可能是哈希,字典,关联数组,映射。优点:简单,直观,灵活。

2301_76928097的博客 1688

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

07. 算法之一致性哈希算法介绍

哈希算法在程序开发中的很多地方都能看到他的身影,但是哈希有他的局限性,比如如果两个key哈希到同一个位置的时候,怎么处理优化。本节我们介绍一下常规处理方式。

wlyang666的博客 3160

说一说Redis中如何使用一致性哈希算法

Redis一致性哈希算法解析:从传统哈希到分布式优化 本文系统性地介绍了Redis中一致性哈希算法的原理与实现。首先通过传统哈希算法在节点扩容时的痛点引入问题,详细讲解了一致性哈希的环状结构设计及其平滑扩容优势。随后剖析了Redis Cluster采用的16384槽位变种实现,以及虚拟节点技术如何解决数据分布不均问题。文章还对比了一致性哈希的优缺点,并通过社交平台缓存案例展示了实际应用场景。最后总结了渐进式扩容等最佳实践,为构建高可用Redis集群提供了实用指导。

从不水文,坚持创作,加油 1322

安全系列之——主流 Hash 散列算法介绍和使用

信安类的专业一般接触到的都是 cryptographic hash, 比如 MD5, SHA 系列, SM3。non-cryptographic hash 指的是未解决原像问题、第二原像(弱碰撞)和强碰撞的 hash 函数。追求效率的应用中通常使用的是 non-cryptographic hash, 因为它们更快。在 Redis, Memcached, Cassandra, HBase, Lucene 都使用了 Murmurhash(一种 non-cryptographic hash)。

云满笔记 2339

一致性哈希算法

我们在使用Redis的时候,为了保证Redis的高可用,提高Redis的读写性能,最简单的方式我们会做主从复制,组成Master-Master或者Master-Slave的形式,或者搭建Redis集群,进行数据的读写分离,类似于数据库的主从复制和读写分离 比如现在有大概2000W左右的数据,按照我们约定的规则进行分库,规则就是随机分配,我们可以部署8台缓存服务器,每台服务器大概含有500W条数据...

Lyzxii 2410

深入Redis之数据类型 — Hash(存储原理、ziplist、字典、hash表)

最近开始写hash数据类型,本想着自己从头来一遍,然后查阅时发现了一篇宝藏文章,直接放弃了自己从头来过的念头,下面的文章内容时转载于:https://blog.csdn.net/WhereIsHeroFrom/article/details/80833863; 目录 一、哈希表概述 二、Redis数据结构定义 三、哈希函数 四、哈希算法 五、rehash 六、渐进式rehash 七...

qq_36608921的博客 8923

MurmurHash 哈希算法

MurmurHash:(multiply and rotate) and (multiply and rotate) Hash,乘法和旋转的hash 算法。 一、哈希函数 定义 散列函数(英语:Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes)的指纹。散列值通常用一个短的随机字母和数字组成的

yzh_1346983557的博客 7568

Redis Hash哈希

感兴趣的宝子们千万不要错过~

wer24_25的博客 1511
上一篇: Redis系列(二)、数据类型之字符串String
下一篇: Redis系列(四)、数据类型之列表List
王义凯_Rick
王义凯_Rick 领域专家: 大数据技术领域 领域专家: 大数据技术领域
博客等级 码龄14年 858粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王义凯_Rick

遇见即是缘,路过就给个评论吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值