2012-05-01 28 views
7

Nhìn vào ví dụ này http://redis.io/topics/twitter-clone trong đó hồ sơ người dùng được lưu trữ bằng cách sử dụng khóa băm ("uid: 1000") và "tweets" được lưu trữ bằng khóa băm ("post: 60"), điều này có nghĩa là tất cả các bản ghi đó được lưu trữ trong cùng một cấu trúc dữ liệu và thêm tweets sẽ có hiệu lực thời gian để lấy hồ sơ người dùng?Trong Redis là tất cả các khóa băm được lưu trữ trong cùng một "bảng"? và nếu như vậy nó ảnh hưởng đến hiệu suất như thế nào?

+0

redis là cửa hàng giá trị khóa nâng cao. do đó nó không lưu trữ dữ liệu như một rdbms trong "bảng". thay vào đó, nó lưu trữ mọi khóa theo một số/mục đã cho với dữ liệu chứa trong đó. – Hajo

+0

chính xác và đó là lý do tại sao có dấu chấm phẩy bao quanh bảng trong tiêu đề. – user971956

Trả lời

11

Có, người dùng và tweet được lưu trữ trong cùng một cấu trúc dữ liệu. Cấu trúc dữ liệu đó là hash table.

Nội bộ, Redis không có khái niệm về loại bản ghi. Theo như Redis là có liên quan, User:1000Post:60 chỉ là một chuỗi các byte. Vì vậy, có, Redis lưu trữ tất cả các bản ghi trong cùng một cấu trúc dữ liệu.

Vì Redis không phân biệt giữa Tweets và người dùng, thời gian phản hồi cho cả hai loại bản ghi sẽ giống nhau.

Vì vậy, mọi thứ sẽ tập trung vào câu hỏi - "Tỷ lệ hiệu suất của Redis có đạt đến số lượng bản ghi không?"

Câu trả lời cho điều đó là CÓ, có. Miễn là bạn có bộ nhớ để giữ tất cả dữ liệu của bạn, hiệu suất của Redis không nên phụ thuộc vào số lượng hồ sơ.

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