通常情况下在可以用 hash 的情况下,也可以用 string 。
这里对 hash 与 string 之间的取舍还不太清楚, 想听听大家的意见。

通常情况下在可以用 hash 的情况下,也可以用 string 。
这里对 hash 与 string 之间的取舍还不太清楚, 想听听大家的意见。
1 xuanbg Mar 2, 2021 hash 相当于 map |
2 awanganddong OP 就比如用户信息,我可以存 string,也可以存 hash 。 这之间的取舍,还不太清晰。 |
3 rrfeng Mar 2, 2021 一组数据如果有同时获取的需求,那么就用 hash 。如果没有,hash 和 string 基本一样。因为有 hgetall |
4 Leviathann Mar 2, 2021 via iPhone hash 里的元素好像不能设置 ttl |
5 jiurenmeng Mar 2, 2021 hash 可以设置键里面的一个值或多个值单独更新,string 更新的是整个,数据结构也不一样 |
6 monsterxx03 Mar 2, 2021 就用户信息这个 case, 不需要 ttl. 如果内存占用问不是问题, 建议用 string. 减少内存是你的头号问题, 考虑用 hash, key 的 overhead 更少. hash 问题是如果以后迁移到 redis cluster, 所有 key 会在一个 slot 里, 分布不均匀 |
7 awanganddong OP 比如 hash 保存用户信息,以前帖子有提示容易做成热 key 和大 value 。这个大 value 指的是 hash 里边所有的值呢,还是单纯的 key field |
8 Edward4074 Mar 2, 2021 场景 1,实体转化为 hash 存储,优点是可以对某个字段进行更新、原子加等才做 |
9 caola Mar 2, 2021 hash 有 zipList 会比 string 占用更少的内存 |
10 Edward4074 Mar 2, 2021 场景 1,实体转化为 hash 存储,优点是可以对某个字段进行更新、原子加等操作 场景 2,针对某个信息存储多个维度值。比如某个帖子,用户是否已点赞,则 field=userId,value=bool |