有时候有一批业务,会在 redis 存一些键值对,如: key_uid = xxx (这里的 uid 是用户 id ,不会重复,需要形成缓存的用户还不少)
下面分别是使用 string 和 hash 的存法的一些示例:
String:
SET key_001 xxx
SET key_002 xxx
SET key_003 xxx
...
Hash:
HSET key 001 xxx
HSET key 002 xxx
HSET key 003 xxx
...
其实这两种都是能满足业务需要的,具体我也说不上来哪种做法好,但是我觉得类似这种业务,会产生很多 key 的话,还是用 Hash 好点,起码不会我一打开 redis 软件看到一大堆 key 头晕。 大家知道这种正经应该用哪个吗?
1
keaidian 2022-05-12 15:47:20 +08:00
这种情况肯定用 Hash 好啊
|
3
skidoo34 2022-05-12 15:50:39 +08:00
Hash 里的 Entry 如果太多要记得拆分 否则会有 big key 问题
|
6
MoYi123 2022-05-12 15:53:20 +08:00 1
用 string 不能快速 count
用 hash 不能单独设过期时间 不需要考虑 一大堆 key 头晕的问题 看你的需求来 |
7
brader OP @skidoo34 想请教下,大量的 key 在 Hash 里会有 big key 问题,那同样的大量的 key 在 string 就没有这个问题存在吗
|
8
lddsb 2022-05-12 16:41:23 +08:00
string 每个鸡蛋一个篮子
hash 所有鸡蛋在一个篮子 |
9
ediron 2022-05-12 16:51:27 +08:00
楼上老哥们都说的很在理
|
10
veightz 2022-05-16 19:25:55 +08:00
楼上老哥们都说的很在理;
没有绝对的好坏, 看场景 |