Redis 存储用户信息时 string 和 hash 的对比

文章对比了Redis中的string和hash类型在存储结构体数据时的差异。string类型的存储方式包括分别存储每个属性和将对象序列化为JSON,而hash类型则允许单独存储和访问每个属性。尽管string简单直观,但hash在内存占用、时间复杂度和操作便捷性上更优,因此推荐使用hash存储用户信息。
摘要由CSDN通过智能技术生成

文章目录


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

那么,string 和 hash 有什么区别?该如何抉择?

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

假设用户表 user 有三个字段 id, name 和 age。

string 类型

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

127.0.0.1:6379> set user:1:name jack
OK
127.0.0.1:6379> set user:1:age 20
OK
  • 优点:简单直观,便于对用户的每个属性进行查询和更新。
  • 缺点:占用了更多的 key 和内存资源,用户的属性过于分散。

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

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

set user:1 json_str
  • 优点:占用的 key 和内存资源少。
  • 缺点:操作比较麻烦,每次都要使用序列化和反序列化,有一定开销。而且不便于单独操作用户的
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值