2013-08-02 14 views

答えて

22

確かに、redis-rbはすべてのRedisコマンドを公開し、それらをクライアントオブジェクトのメソッドとして表します。

redis.keys('*') 
12

あなたのDBにレコードの任意のかなりの量を持っている場合、それはあまりにも多くのRAMを取ることになるので、カーネルはあなたのredis.keysを殺すでしょう。

バッチでキーを抽出します。あなたはすべてのキーをしたい場合は、単にmatchオプションを使用しないでください

redis.scan_each(match: 'user:*') do |resume_key_name| 
     resume_key_name #=> "user:12" 
    end 

のRedis-RBは(Redisの自体に存在していない)、このための素晴らしい方法があります。

+1

これは私にとって非常に遅かったです。 5.6KのキーだけでRedisデータベースに戻るには15秒かかりました。 –

+0

@AbeVoelkerもっと速くなる 'pipelined'でredisを使うことができます。 – fangxing

+0

@Alexの答えを見てください。シンプルでわかりやすい –

関連する問題