本文介绍: 在 redis 中,string 类型hash 类型,都可以用来存储对象信息结构数据)。那么,stringhash什么区别?该如何抉择?既然 string 可以实现相同功能,为何还要用 hash 呢?在 redis 官网看到优先使用 hash 的字眼,主要是基于以下三个因素内存占用率、时间复杂度使用简便性

redis 中,string 类型和 hash 类型,都可以用来存储对象信息结构数据)。

那么,stringhash什么区别?该如何抉择?

既然 string 可以实现相同功能,为何还要用 hash 呢?在 redis 官网看到优先使用 hash 的字眼,主要是基于以下三个因素内存占用时间复杂度使用的简便性

假设用户user 有三个字段 id, nameage

string 类型

第一种存储方式:单独存储用户每个属性字段

127.0.0.1:6379> set user:1:name jack
OK
127.0.0.1:6379> set user:1:age 20
OK

生产环境中,一般不会采用这种方式

第二种存储方式:先将整个用户信息对象数组转换json 字符串然后再存储。

set user:1 json_str

生产环境中,可以采用这种方式。

hash 类型

hash 可以对结构体数据的每个属性(字段)进行单独存储和访问

采用 hash 存储用户信息

127.0.0.1:6379> hmset user:1 name jack age 20
OK

127.0.0.1:6379> hget user:1 name
"jack"
127.0.0.1:6379> hgetall user:1
1) "name"
2) "jack"
3) "age"
4) "20"

总结推荐优先使用 hash 来存储用户信息

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注