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