Redis cho phép lưu trữ dữ liệu trong 16 cơ sở dữ liệu khác nhau (0 đến 15). Có cách nào để có được bộ nhớ sử dụng & không gian đĩa trên mỗi cơ sở dữ liệu. Lệnh INFO chỉ liệt kê số lượng khóa trên mỗi cơ sở dữ liệu.Sử dụng bộ nhớ trong redis cho mỗi cơ sở dữ liệu
Trả lời
Không, bạn không thể kiểm soát từng cơ sở dữ liệu riêng lẻ. Những "cơ sở dữ liệu" này chỉ dành cho phân vùng hợp lý dữ liệu của bạn.
Những gì bạn có thể làm (tùy thuộc vào yêu cầu và thiết lập cụ thể của bạn) là quay nhiều lần lặp lại, mỗi trường hợp thực hiện một tác vụ khác nhau và mỗi tác vụ có tệp redis.conf
riêng với nắp bộ nhớ. Không gian đĩa có thể không được giới hạn mặc dù, ít nhất là không ở cấp độ Redis.
Lưu ý phụ: Lưu ý rằng số 16 cơ sở dữ liệu không được mã hóa cứng - bạn có thể đặt số này trong redis.conf
.
Xem redis-rdb-tools
Bạn có thể nhận được một sử dụng bộ nhớ xấp xỉ bởi cơ sở dữ liệu, nên trong vòng 10% của hiện thực.
Tôi sẽ thử, nhưng tôi đoán bằng cách nói 'trong vòng 10% thực tế', bạn đang nói nhiều hơn 10% so với những gì chương trình của bạn báo cáo, đúng không? Nhận được chiều dài lũy thừa cho mỗi khóa bằng cách sử dụng đối tượng gỡ lỗi như [câu hỏi này] (http://stackoverflow.com/questions/7638542/redis-show-database-size-size-for-keys) gợi ý, nó sẽ là một giới hạn thấp hơn tốt hơn ? Tôi cần phải kiểm tra. – user209377
Đối với các đối tượng nhỏ, chiều dài tuần tự là chính xác. Nhưng đối với các đối tượng lớn hơn, nó là khủng khiếp không chính xác. Redis-rdb-tools đảo ngược các kỹ sư Redis 'cấu trúc dữ liệu để tìm ra bộ nhớ được sử dụng. Xem nhận xét trong https://github.com/sripathikrishnan/redis-rdb-tools/blob/master/rdbtools/memprofiler.py để tìm hiểu thêm –
Tôi đã làm điều đó bằng cách gọi dump
trên tất cả các khóa trong Redis DB và đo tổng số byte được sử dụng. Điều này sẽ làm chậm máy chủ của bạn và mất một lúc. Có vẻ như kích thước dump
trả về nhỏ hơn khoảng 4 lần so với mức sử dụng bộ nhớ thực tế. Những con số này sẽ cho bạn một ý tưởng về việc db nào đang sử dụng nhiều không gian nhất.
Dưới đây là mã của tôi: https://gist.github.com/mathieulongtin/fa2efceb7b546cbb6626ee899e2cfa0b
Đây là một lựa chọn khác, nhưng tôi không chắc chắn có bao nhiêu chi phí tiêu thụ bộ nhớ cho mỗi trường hợp. – user209377
Nhưng đây là tùy chọn _the_ –