2013-08-25 8 views
6

私はredisで新しくなりました。私はredisの基本を学ぶのはとても簡単ですが、レールでどのように使うことができるのか理解しようとすると、最初からの手順を説明して何か良いtutorielを見つけることができない、例えば私はこのようなコードを見つける:はレールでどのようにredisが動作するのか理解できません

class User < ActiveRecord::Base 
    # follow a user 
    def follow!(user) 
    $redis.multi do 
     $redis.sadd(self.redis_key(:following), user.id) 
     $redis.sadd(user.redis_key(:followers), self.id) 
    end 
    end 

    # unfollow a user 
    def unfollow!(user) 
    $redis.multi do 
     $redis.srem(self.redis_key(:following), user.id) 
     $redis.srem(user.redis_key(:followers), self.id) 
    end 
    end 

が、この例では、他の例をオブジェクト私が何であるかをfollowメソッドを使用する方法を示していますこのメソッドに渡す必要があります(このオブジェクトはリレーショナルデータベースかどうかなど)。

私の検索で見つかったすべての例は不完全であり、このレンダリングはレールで使用することを決めるのは簡単ではありません!

また、ActiveRecordを継承するモデルでは、redisの使用がわかりません。私は理解できません。リレーショナルデータベースや単独で大部分のケースでredisが使用され、どのくらい正確に?

私の質問は広大だが、私が探しているのは、あなたが私のために良いリソースを持っているならば、私は非常に感謝するでしょう。あなたは

答えて

8

いない他の例は以下のメソッドを使用する方法を示し感謝、である私は、このメソッドに渡す必要があるオブジェクトは、等...(リレーショナルデータベース?または何からこのオブジェクトがある)

ユーザーはシステムのユーザーであるActiveRecordオブジェクトです。

通常、Redisは2次データストアとして使用されます。通常のユーザデータ、顧客データなどは、PostgresまたはMySQLに格納され、redis特有のデータはredisに格納されます。

RailsCasts 399 on autocompleteでは、RyanはRedisを使って本屋を検索エンジンとして補完する方法を示しています。彼は使用しています$redis.zrevrange$redis.zincrby

+0

私は赤のユーザーのフォロワーのIDを格納する場合、ここの利点は何ですか?最後に私はmysql/postgresから情報を抽出します! – medBo

+0

利点は、あなたが従う人のリストを引っ張ることでほぼ一定の時間です。数百万の行では、このクエリは標準データベースでは時間がかかります。 –

+0

@medBoこれはあなたの質問に答えましたか?その場合は、合格とマークしてください。 –