2011-01-19 31 views

Trả lời

23

Redis sẽ sử dụng RAM nhiều hơn một chút so với đĩa. Định dạng dumpfile có thể được đóng gói dày đặc hơn một chút. Đây là một số con số từ một hệ thống sản xuất thực tế (một 64 bit EC2 dụ lớn chạy Redis 2.0.4 trên Ubuntu 10.04):

$ redis-cli info | grep used_memory_human 
used_memory_human:1.36G 

$ du -sh /mnt/data/redis/dump.rdb 
950M /mnt/data/redis/dump.rdb 

Như bạn có thể thấy, dumpfile là một vài trăm megs nhỏ hơn so với việc sử dụng bộ nhớ .

Cuối cùng, nó phụ thuộc vào những gì bạn lưu trữ trong cơ sở dữ liệu. Tôi có phần lớn các băm trong mỏ, chỉ với một vài bộ (có lẽ ít hơn 1%). Không có khóa nào chứa các đối tượng rất lớn, kích thước đối tượng trung bình là 889 byte.

+0

Tôi đã thực hiện một số thử nghiệm trên máy của mình và tôi có thể xác nhận điều này; có vẻ như Redis không bao gồm RAM mà nó sử dụng để tính toán giới hạn kích thước cơ sở dữ liệu. –

+0

Một trong bốn phiên bản redis của chúng tôi có một dumpfile 3.4G nhưng redis nói nó đã sử dụng 16.52G trong bộ nhớ. –

+1

Nếu bạn đang sử dụng phiên bản Redis cũ hơn 2.4 và thực hiện rất nhiều thao tác xóa, điều này có thể xảy ra. Các phiên bản cũ của Redis không bao giờ giải phóng bộ nhớ trở lại hệ điều hành vì vậy việc sử dụng bộ nhớ sẽ ở lại điểm đánh dấu nước cao cho đến khi khởi động lại. – Theo

-3

Cơ sở dữ liệu Redis được lưu trữ trong bộ nhớ, vì vậy cơ sở dữ liệu 80MB sẽ mất 80mb trong ram.

Redis là bộ nhớ cực thấp sử dụng chương trình và bạn có thể thấy từ ví dụ này từ trang web "1 triệu khóa có khóa là số tự nhiên từ 0 đến 999999 và chuỗi" Hello World "làm giá trị sử dụng 100MB [của Ram] ". Ứng dụng Redis của tôi sử dụng khoảng 300kb đến 500kb ram, vì vậy bạn sẽ cần nhiều dữ liệu để truy cập cơ sở dữ liệu 80mb. Redis cũng tiết kiệm cho các bức ảnh đĩa của cơ sở dữ liệu, vì vậy 80mb trong ram và 80mb trên ổ đĩa cứng.

+1

-1 Điều này hoàn toàn không chính xác. Tôi có 4,1 GB dữ liệu chiếm 11 GB RAM. – Alan

+1

-1 Câu trả lời sai đồng bộ ... –

+0

"Hệ thống 64 bit sẽ sử dụng nhiều bộ nhớ hơn 32 bit để lưu trữ cùng khóa, đặc biệt nếu khóa và giá trị nhỏ, điều này là do con trỏ mất 8 byte trong hệ thống 64 bit" –

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