Redis(八)hash散列类型

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: hash散列类似于一个小型的Redis数据库,一个散列可以包含多个键值对,散列的每个键都不能重复,各不相同,无序排列,其值可以是字符串或数字值,对于数字值,可以执行自增或者自减操作。hash 特别适合用于存储对象。

QQ图片20220425171928.jpg

hash散列类似于一个小型的Redis数据库,一个散列可以包含多个键值对,散列的每个键都不能重复,各不相同,无序排列,其值可以是字符串或数字值,对于数字值,可以执行自增或者自减操作


hash 特别适合用于存储对象。


一:字符串结构:


[
    "user":[
        "camellia1":"90",
        "camellia2":"100",
        "camellia3":"90"
    ]
]


二:hash散列类型相关操作命令(PHP+linux)


1:Linux命令使用


(1):添加一个键值对到散列。如果 成功则返回1;如果键已经存在,返回0


hset hash-key camellia1 90      // 返回(integer) 1成功
hset hash-key camellia1 120     // 返回(integer) 0失败,但是值修改成为120
hset hash-key camellia2 120     // 返回(integer) 1成功
hset hash-key lulubin1 90           // 返回 0,由于该键已经存在


(2):hget获取一个给定键camellia的值。


hget hash-key camellia1              // "120"


(3):hgetall 获取所有添加的值


hgetall hash-key


输出:


1) "camellia1"
2) "120"
3) "camellia2"
4) "120"


(4):hdel 删除键值,成功返回1,失败返回0;


hdel hash-key camellia1             // 返回(integer) 1


2:PHP使用:


(1):添加,成功返回1,失败返回0;


$res = $redis->hset("hash-key","camellia1","90");
$res = $redis->hset("hash-key","camellia1","90");
    var_dump($res);  // 返回1  添加成功
    $res = $redis->hset("hash-key","camellia2","120");
    // 键已存在,给其设置不同值,直接修改。但是,返回0;
    $res = $redis->hset("hash-key","camellia2","150");


(2):查看刚刚添加的所有键值


$array = $redis->hgetall("hash-key");
    var_dump($array);
    // 输出:
    /*array(2) { ["camellia1"]=> string(2) "90" ["camellia2"]=> string(3) "150" }//*/


(3):hget获取键对应的值。


// 获取其中一个建对应的值
    $result = $redis->hget("hash-key",'camellia1');
    var_dump($result);      // 返回90


(4):hdel删除其中一个键。 如果之前键存在于散列中,则返回1,反之,返回0


res=redis->hdel("hash-key","camellia1"); var_dump($res); // 返回0


三:redis hash 应用场景


1:Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。


2:存储部分变更的数据,如用户信息等。


四:其他常用redis命令


序号


命令及描述


1


HDEL key field1 [field2] 
  删除一个或多个哈希表字段


2


HEXISTS   key field 
  查看哈希表 key 中,指定的字段是否存在。


3


HGET key field 
  获取存储在哈希表中指定字段的值。


4


HGETALL   key 
  获取在哈希表中指定 key 的所有字段和值


5


HINCRBY   key field increment 
  为哈希表 key 中的指定字段的整数值加上增量 increment 。


6


HINCRBYFLOAT   key field increment 
  为哈希表 key 中的指定字段的浮点数值加上增量 increment 。


7


HKEYS key 
  获取所有哈希表中的字段


8


HLEN key 
  获取哈希表中字段的数量


9


HMGET key field1 [field2] 
  获取所有给定字段的值


10


HMSET key field1 value1   [field2 value2 ] 
  同时将多个 field-value (域-值)对设置到哈希表 key 中。


11


HSET key field value 
  将哈希表 key 中的字段 field 的值设为 value 。


12


HSETNX   key field value 
  只有在字段 field 不存在时,设置哈希表字段的值。


13


HVALS key 
  获取哈希表中所有值


14


HSCAN   key cursor [MATCH pattern] [COUNT count] 
  迭代哈希表中的键值对。


以上基本上是我看的redis HASH散列类型的基本内容,有不足的地方,还请大佬指出。


相关实践学习
基于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
目录
相关文章
|
1月前
|
存储 NoSQL Java
Redis如何处理Hash冲突?
在 Redis 中,哈希表是一种常见的数据结构,通常用于存储对象的属性,对于哈希表,最常遇到的是哈希冲突,那么,当 Redis遇到Hash冲突会如何处理?这篇文章,我们将详细介绍Redis如何处理哈希冲突,并探讨其性能和实现细节。
56 1
|
16天前
|
存储 消息中间件 NoSQL
Redis数据结构:List类型全面解析
Redis数据结构——List类型全面解析:存储多个有序的字符串,列表中每个字符串成为元素 Eelement,最多可以存储 2^32-1 个元素。可对列表两端插入(push)和弹出(pop)、获取指定范围的元素列表等,常见命令。 底层数据结构:3.2版本之前,底层采用**压缩链表ZipList**和**双向链表LinkedList**;3.2版本之后,底层数据结构为**快速链表QuickList** 列表是一种比较灵活的数据结构,可以充当栈、队列、阻塞队列,在实际开发中有很多应用场景。
|
24天前
|
存储 NoSQL Redis
Redis 哈希(Hash)
10月更文挑战第16天
33 1
|
27天前
|
消息中间件 存储 监控
redis 的List类型 实现 排行榜
【10月更文挑战第8天】
36 2
|
27天前
|
存储 NoSQL Redis
redis-set类型
【10月更文挑战第6天】
36 1
|
1月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
25 3
|
1月前
|
消息中间件 分布式计算 NoSQL
大数据-41 Redis 类型集合(2) bitmap位操作 geohash空间计算 stream持久化消息队列 Z阶曲线 Base32编码
大数据-41 Redis 类型集合(2) bitmap位操作 geohash空间计算 stream持久化消息队列 Z阶曲线 Base32编码
25 2
|
16天前
|
存储 NoSQL 关系型数据库
Redis的ZSet底层数据结构,ZSet类型全面解析
Redis的ZSet底层数据结构,ZSet类型全面解析;应用场景、底层结构、常用命令;压缩列表ZipList、跳表SkipList;B+树与跳表对比,MySQL为什么使用B+树;ZSet为什么用跳表,而不是B+树、红黑树、二叉树
|
1月前
|
消息中间件 NoSQL Kafka
大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis
大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis
126 0
|
存储 NoSQL Redis
Redis命令——哈希(Hash)
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。 Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
1493 0