我们目前正在使用Redis作为我们的数据存储。 我正在做一个新的部分,我们需要排名和分页用户。 所以我想使用sorting设置保持排名和userid。 哈希保存用户的个人资料数据。 一位同事提醒我,我们需要提出许多请求来使用HGET来获取用户configuration文件数据。 所以往返时间将成为一个问题。 我打算使用HMGET,但做了一些研究后,我发现它可能会导致问题,因为密钥存储在不同的redis节点时,Redis被群集。 我使用phpredis它有客户端分片(我无法理解是什么)。
我正在想这样做:
秩
zadd userRank 1 5 zadd userRank 2 2 zadd userRank 3 4 zadd userRank 4 3
用户资料
hset userProfile user:5 "{'userId':'5','name':'usera'}" hset userProfile user:4 "{'userId':'4','name':'userb'}" hset userProfile user:3 "{'userId':'3','name':'userc'}" hset userProfile user:2 "{'userId':'2','name':'userb'}"
1)HMGET能够在集群Redis中正常工作吗?
2)如果不是我能做什么?
3)有没有更好的方法来实现这个?
身高:
hmset user:5 userId 5 name usera hmset user:4 userId 4 name userb hmset user:3 userId 3 name userc hmset user:2 userId 2 name userb
您的排名架构是好的。 要检索排名最高的用户之间的分页,只需执行一个ZREVRANGEBYSCORE ,然后请求每个用户。
注意: 聚类与分片不一样。