我正在使用 Sinatra 和 Redis在 Facebook 上重建 Lovers ,我想要:
- 设置用于管理用户之间的请求和关系的操作
- 地理空间索引以显示附近的应用程序用户
当前的 Redis 实现
每个用户都有两个存储 uid 的 Redis 有序集 ( reqSent
& reqRecv
)。SCORE
我们订购请求的依据是发出请求的(time
UNIX 时间戳)。我使用的是有序集合而不是列表,因为用户只能将请求类型 (rid) 编码为数字并附加到 uid。(rid|uid) 例如,对于 uid=100 的用户,我们可能有:
100:reqSent => ["1|123", "2|123", "2|134"] # format: ["rid|tid"]
100:reqRecv => ["3|343", "5|142", "4|2224"] # format: ["rid|uid"]
MongoDB本身支持地理空间索引,所以我正在考虑切换到它。
否则,我应该如何使用 Redis 实现地理空间索引?我应该用Sunspot (localsolr) 来做吗?显然,您可以将Sunspot 与 Redis 一起使用。