2013-08-02 25 views

Trả lời

22

Chắc chắn, redis-rb hiển thị tất cả các lệnh Redis và trình bày chúng như là các phương thức trên đối tượng khách hàng của bạn.

redis.keys('*') 
12

Nếu bạn có bất kỳ số lượng đáng kể của các bản ghi trong db của bạn, kernel sẽ giết redis.keys bởi vì nó sẽ được tham gia quá nhiều RAM của bạn.

Điều bạn muốn là giải nén các khóa theo lô. redis-rb có một phương pháp tuyệt vời cho điều này (không có mặt trong redis tự):

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

Nếu bạn muốn tất cả các phím, chỉ cần không sử dụng tùy chọn match.

+1

Điều này cực kỳ chậm đối với tôi; mất khoảng 15 giây để quay lại cơ sở dữ liệu Redis chỉ với các phím 5.6K. –

+0

@AbeVoelker Bạn có thể sử dụng redis với 'pipelined', sẽ nhanh hơn – fangxing

+0

xem câu trả lời @Alex. đơn giản và dễ hiểu –

Các vấn đề liên quan