我有由user_ids和这些用户ID的标签组成的数据.user_ids多次出现并且具有预先指定数量的标记(500),但是可能在该特征中发生变化.必须存储的是user_id,它们的标签和它们的数量.我希望以后能够轻松找到最高分的标签..等.每次出现标签时,它都会增加
我在redis中的实现是使用有序集完成的
每个user_id都是一个有序集
key是user_id,是十六进制数
像这样工作:
zincrby user_id:x 1"tag0"
zincrby user_id:x 1"tag499"
zincrby user_id:y 1"tag3"
等等
考虑到我想获得得分最高的标签,有更好的方法吗?
第二个问题是,现在我正在使用"keys*"来检索客户端操作的这些密钥,我知道它不是针对生产系统的.
此外,对于内存问题来说,迭代指定数量的键(范围为10000)会很棒.我知道密钥必须存储在内存中,但是它们不遵循特定模式以允许部分检索,因此我可以避免"zmalloc"错误(4GB 64位debian服务器).钥匙数量达到2000万.有什么想法吗?