Redis 哈希(hash)数据类型详解和应用场景

redis是一个高速缓存的key-values数据库,它支持五种的数据类型,包括字符串类型(String)列表(list)集合(set)有序集合(zset)、哈希(hash)。下面我们来详细分析redis hash数据类型详解和应用场景。


一、redis哈希(hash)数据类型

Redis hash数据结构 是一个键值对(key-value)集合,它是一个 string 类型的 field 和 value 的映射表,redis本身就是一个key-value型数据库,因此hash数据结构相当于在value中又套了一层key-value型数据。所以redis中hash数据结构特别适合存储关系型对象。比如用来存储学生基本信息,或者用户信息等。


二、redis hash 常用命令

1、Hmset 命令:用于同时将多个field-value (字段-值)对设置到哈希表中。假如hash表中已经存在field,则会对其进行覆盖。如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作。命令如下:

Hmset stuhash stuid 20190101 name tom sex 1

2、Hmget 命令:用于返回hash表中field字段对应的值,如果field不存在,那么返回nil值。命令如下:

Hmget  stuhash stuid
Hmget stuhash stuid name

3、Hset 命令:对hash表中field对应的value进行赋值,如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。命令如下:

Hset stuhash name tom1
Hmget stuhash name

4、Hvals 命令:用于返回哈希表所有field对应的值。命令如下:

Hvals stuhash

5、Hdel 命令:用于删除指定哈希表中的一个或多个field,不存在的field将被忽略。命令如下:

Hdel stuhash sex

6、Hgetall 命令用于返回哈希表中,所有的字段和值。命令如下:

Hgetall stuhash


三、redis哈希应用场景

1、由于hash数据类型的key-value的特性,用来存储关系型数据库中表记录,是redis中哈希类型最常用的场景。一条记录作为一个key-value,把每列属性值对应成field-value存储在哈希表当中,然后通过key值来区分表当中的主键。

2、经常被用来存储用户相关信息。优化用户信息的获取,不需要重复从数据库当中读取,提高系统性能。