Redis 选择hash还是string 存储数据?

本文探讨了在Redis中存储JSON数据时,使用string和hash的内存效率问题。通过测试发现,小型hash会被编码为ziplist,节省空间。当数据量增大,hash转为hashtable,仍能保持较好的读写速度。选择存储方式应根据数据结构和使用场景,结构化数据且常用部分字段时,hash更优;大量不同数据或需完整读取时,string更合适。
摘要由CSDN通过智能技术生成

看到一个问题, Redis strings vs Redis hashes to represent JSON: efficiency? 内容如下:

I want to store a JSON payload into redis. There's really 2 ways I can do this:

  1. One using a simple string keys and values.
  2. key:user, value:payload (the entire JSON blob which can be 100-200 KB)
  3. SET user:1 payload
  4. Using hashes
  5. HSET user:1 username "someone"
  6. HSET user:1 location "NY"
  7. HSET user:1 bio "STRING WITH OVER 100 lines"

Keep in mind that if I use a hash, the value length isn't predictable. They're not all short such as the bio example above.

Which is more memory efficient? Using string keys and values, or using a hash?

string 和 hash 直观测试

首先我们先测试用数据测试一下,测试数据结构如下:

values = {
    "name": "gs",
    "age": 1
}

使用for 生成10w个key,key的生成规则为:

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值