我想知道使用用户ID的好处,而不仅仅是使用唯一的用户名作为密钥。Redis中的密钥的用户名或ID
- 用户:USERNAME => {密码:HASH,年龄:45}
- 用户:0 => {用户名:用户名,密码:HASH,年龄:45}
注意,我希望按名称查找用户,因此需要第二组键值将用户名与ID相关联。
鉴于每个用户名都是唯一的,并且必须是字母数字,有什么特别的原因可能有利于使用ID系统。
我问这个问题的主要原因是因为我主要使用ID,因为它们减少了我数据库中的查找时间,特别是当数据库以某种方式归一化时。但是,Redis没有获得这种好处,所以我想知道可能有什么其他原因使用用户ID而不是用户名。
感谢您的帮助,
Pluckerpluck
附:由于Redis处理哈希的方式,我实际上不确定这两种方法之间的内存差异,因此有关此方面的信息可能会很好,但我可能会在稍后自行测试。
感谢您指出该场景。只是一个简单的问题:如果我要使用ID。然后,我需要一个用户名 - ID关系来允许搜索用户名。你认为一个排序集(排名是id)将是一个好办法吗?或者改为哈希? – Pluckerpluck 2012-04-11 17:12:57
散列效果更好有两个原因 - a)使用的内存少于排序集,b)用户没有定义的排序,所以从概念上讲,使用排序集是没有意义的。 – 2012-04-11 17:20:38
我会使用散列索引用户名。它们比内存中的zset更紧凑。使用zset只有在您需要支持名称范围查询时才有用... – 2012-04-11 17:21:17