2011-09-18 26 views

Trả lời

10
REDIS.keys("thing1:*") 

Tuy nhiên, bạn có thể muốn xem xét sử dụng bản đồ.

REDIS.hset("thing1", "user1", "") 
REDIS.hset("thing1", "user2", "") 
REDIDS.hgetall("thing1") 

Hãy cẩn thận với điều này trong quá trình sản xuất. Redis chỉ có thể xử lý một lệnh cùng một lúc và KEYS rất chậm. Nó phải xem xét mọi khóa trong toàn bộ cơ sở dữ liệu.

+0

hey, yea tôi đang sử dụng bản đồ ngay bây giờ nhưng nghĩ rằng nó sẽ có ích tại một thấp vì tôi chỉ có thể làm việc một lần trong một thời gian. chắc chắn tôi vẫn có thể nhận được tất cả các phím khi cần thiết. Cảm ơn! – fancy

0

Có một lệnh KEYS trong redis mà tìm kiếm tất cả tên khóa của mình cho mẫu quy định. Tuy nhiên, bạn nên cẩn thận khi sử dụng lệnh này vì nó có độ phức tạp thời gian O (N), do đó hiệu suất phụ thuộc vào số lượng khóa trong cơ sở dữ liệu của bạn. Nó được thiết kế để gỡ lỗi và không phù hợp với môi trường sản xuất.

1

Bạn cũng có thể theo dõi các id trong Danh sách và sau đó truy lục giá trị của tất cả các phím (hoặc băm) bằng SORT http://redis.io/commands/SORT.

Đó là phức tạp hơn một chút so với "KEYS" nhưng nó có thể làm khi ngày càng tốt (:

Tôi đọc ở đâu đó rằng hgetall có thể cung cấp cho bạn các vấn đề nếu bạn có quá nhiều lĩnh vực trong một hash, tiếc là tôi không thể tìm ra atm tham khảo

0

Bạn có thể sử dụng SCAN lệnh để lặp qua tất cả các phím mà trận đấu cho mẫu:.

> SCAN 0 MATCH thing1:* 
1) "172032" 
2) 1) "thing1:userid1" 
    2) "thing1:userid2" 
> SCAN 172032 MATCH thing1:* 
1) "0" 
2) 1) "thing1:userid3" 
Các vấn đề liên quan