FacebookでSinatra&Redisを使用して恋人を再構築しています。
- ユーザー間のリクエストと関係を管理するための操作を設定します
- 近くのアプリユーザーを表示するための地理空間インデックス
現在のRedisの実装
各ユーザーには、uidを格納する2つのRedis順序セット( reqSent
& )があります。リクエストを注文するのは、リクエストが行われたreqRecv
(UNIXタイムスタンプ)です。ユーザーはリクエストタイプ(rid)のみを作成できるため、リストの代わりに順序セットを使用しています。リクエストタイプ(rid)は数値としてエンコードされ、uidの前に付加されます。(rid | uid)たとえば、uid = 100のユーザーの場合、次のようになります。SCORE
time
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)でやるべきですか?どうやら、 RedisでSunspotを使用できます。