2013-08-02 13 views

Odpowiedz

22

Oczywiście, redis-rb udostępnia wszystkie polecenia Redis i reprezentuje je jako metody w obiekcie klienta.

redis.keys('*') 
12

Jeśli masz znaczną ilość zapisów w db, jądro zabije swoje redis.keys ponieważ będzie brać zbyt dużo pamięci RAM.

To, czego potrzebujesz, to wydobywanie kluczy partiami. Redis-rb ma wspaniały sposób na to (nieobecne w REDiS sama)

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

Jeśli chcesz wszystkie klucze, po prostu nie korzystać z opcji match.

+1

To było dla mnie bardzo powolne; Powrót do bazy danych Redis za pomocą jedynie kluczy 5,6K zajęł około 15 sekund. –

+0

@AbeVoelker Możesz użyć redis z 'pipelined', który będzie szybszy – fangxing

+0

zobacz odpowiedź @Alex. prosty i prosty –

Powiązane problemy