@
johnsneakers 第一
你的原话是( 第一次见这样玩的 ,我太菜了,怎么给对方说都不听)。
注意这里的措辞
第一次见这样玩的
我太菜了
怎么给对方说都不听。
就算不是喷?也带着极大的负面情绪。
第二
技术类的问题,网络上有很多的资料,如果自己没见过的,不懂的,第一反应,应该是查资料,而不是惊叹,也不是到论坛上讨论。在你把所面对的技术问题本身搞清楚了,再来讨论比较好。附赠一篇文章给你(
https://blog.csdn.net/danky/article/details/1370632 )
第三
在 redis 里面,本身就是一个大的 hashmap,然后 hashmap 包含很多的 key==>val,同时这里的 val 可能有多种类型。当 val 是 hashmap 的时候,他的数据结构本身和 redis 的大 haspmap,并没有太大的不同。
获取一条数据的流程大概是:
1 从大的 hashmap 拿到 user 集合的小 hashmap O(1)级别
2 从小的 hashmap 拿到 user 的信息 O(1)级别
你的想法是一步就能拿到的,为什么要两步? 性能损失了 50%?其实完整的过程是:
1 发送命令给 redis
2 从大的 hashmap 拿到 user 集合的小 hashmap O(1)级别
3 从小的 hashmap 拿到 user 的信息 O(1)级别
4 返回数据
2 和 3 都是 O(1)级别, 相比 1 和 4 的时间,可能 5%都不到。那么性能是微乎其微的。
第四
我并不是倾向于把所有用户放到一个 key 里面,也不倾向于一定要分开放,具体问题具体分析。我只是想说两种方案都可以。