2013-03-12 32 views
16

Tôi hiện đang sử dụng Redis cho ứng dụng của mình và các tính năng của ứng dụng thực sự tuyệt vời cho ứng dụng của tôi (danh sách, bộ, bộ được sắp xếp, v.v.).Tìm kiếm cơ sở dữ liệu giống như redis trên đĩa

Ứng dụng của tôi dựa chủ yếu vào các bộ, danh sách, bộ được sắp xếp. Và các chức năng liên quan của chúng (đẩy vào danh sách, lấy danh sách, liên kết tập hợp vv. Vấn đề duy nhất tôi đang gặp phải là dữ liệu của tôi lớn, và hầu hết dữ liệu của tôi không cần phải có trong bộ nhớ, và tôi muốn lưu trữ chúng trên đĩa.

** tôi cần trên đĩa cơ sở dữ liệu với cấu trúc dữ liệu redis **

tôi đọc về Cassandra nhưng tôi không chắc chắn nếu nó hỗ trợ bộ được sắp xếp, bộ, danh sách. Hoặc ít nhất là nếu có, tôi không thể tìm ra phương pháp để điều khiển chúng theo cách của Redis.

Cảm ơn

+0

không redis lưu dữ liệu vào đĩa? của tôi. – akonsu

+1

. Nhưng khi nó đang chạy trong bộ nhớ, bạn không thể vượt quá kích thước của bộ nhớ, tôi muốn lưu trữ dữ liệu vượt quá kích thước bộ nhớ, trên đĩa. – Pacemaker

+4

Nó đơn giản là không thực tế để có nhiều tính năng của redis trong một hệ thống cơ sở dữ liệu dựa trên đĩa, bởi vì chúng không thể được lưu trữ giống như cách chúng có trong bộ nhớ. Ví dụ, bạn không thể có O (1) tra cứu thời gian (một truy vấn chọn đơn giản trong SQL thường là O (log (n)) chẳng hạn). Tuy nhiên, nhiều tính năng bạn đang tìm kiếm có sẵn trong nhiều cơ sở dữ liệu sql - thường dựa trên đĩa (một bảng với một cột đơn, khóa chính, là tập hợp - nhiều công đoàn hỗ trợ của DB, v.v.). –

Trả lời

7

https://github.com/yinqiwen/ardb khác REDIS giao thức thay thế với LMDB, RocksDB và LevelDB đĩa dựa trên backend

chuẩn đẹp

+0

ardb không ổn định đối với env sản xuất. – yegong

+0

@yegong cách bạn đã tìm ra điều đó? Tôi không thấy bất cứ nơi nào ardb không phải là sản xuất đã sẵn sàng. – Peeyush

+0

https://github.com/siddontang/ledisdb thay thế redis dựa trên đĩa tuyệt vời – Slach

-1

Tôi khuyến khích bạn học Cassandra, trong khi nó có một số thứ tương tự như khóa/giá trị và bộ, nó rất khác với Redis.

Hiện tại chúng tôi đang di chuyển một dự án từ Redis (chúng tôi sử dụng sadd/spop) đến TokyoCabinet/KyotoCabinet qua giao thức Memcached. Đối với những điều khoảnh khắc có vẻ tốt và rất sớm tôi sẽ công bố các lib trên github - sẽ có mặt ở đây:

https://github.com/nmmmnu

và dự án sẽ được gọi là tin nhắn đơn giản Queue. Nó sẽ chỉ hỗ trợ sadd/spop/sismember. Cũng trong Python, bạn sẽ có thể sử dụng đối tượng mới thay vì đối tượng Redis, nhưng chỉ cho ba lệnh này.

Hy vọng điều này sẽ hữu ích.


Cập nhật 2014,07:

Đây là dự án tôi đang nói về.

https://github.com/nmmmnu/MessageQueue

Nó thực hiện cả hai Redis và các giao thức memcached. Đối với back-end nó sử dụng bộ nhớ ndb/mdb hoặc berkeley db.

+0

Tôi không hiểu tại sao một người nào đó sẽ làm -1. Cassandra gần giống như redis và dự án của tôi đã hoàn tất ngay bây giờ và bạn có thể thấy nó ở đây: https://github.com/nmmmnu/MessageQueue - cả giao thức redis và memcached đều được triển khai và hoạt động. Chắc chắn, MessageQueue của tôi không thể được sử dụng trực tiếp, nhưng bạn có thể nhận được lớp giao thức và thực hiện phần còn lại. – Nick

+1

Tôi đã bỏ phiếu xuống vì bạn nói rằng không có cơ sở dữ liệu như vậy, khi có. Trong thực tế, thậm chí có các thay thế thả xuống tương thích với giao thức. Vì vậy, điều này không thể được thêm từ sự thật. Tôi đã loại bỏ các downvote, xin vui lòng loại bỏ câu đầu tiên :) –

5

Có rất nhiều cơ sở dữ liệu trên đĩa với datastructures Redis giống như hoặc thậm chí cố gắng để được thả trong thay thế giao thức tương thích với Redis.

Có các đề xuất tuyệt vời trong "Is there something like Redis DB, but not limited with RAM size?" - điều đáng tiếc là cộng đồng coi những câu hỏi như vậy là không có chủ đề.

Cụ thể, SSDB là một cơ sở dữ liệu trên đĩa tương thích Redis được duy trì tích cực (nhưng không tương thích trực tiếp) và Ardb là một thay thế thả tích cực duy trì cho Redis lưu trữ dữ liệu trên đĩa. Disclaimer: Tôi đã không sử dụng một trong số họ (chưa).

+0

Cảm ơn câu trả lời tốt. Tôi không thể nhìn thấy những câu hỏi này ngoài chủ đề như thế nào. Tôi tìm thấy cấu trúc của redis tuyệt vời cho rất nhiều ứng dụng mà nó là phải có một cơ sở dữ liệu tương tự trên đĩa như thế. – Pacemaker

+0

Tôi là tác giả của SSDB (một cơ sở dữ liệu trên đĩa giống như redis), nhiều công ty đã thay thế các phiên bản redis của họ bằng SSDB, bao gồm QIHU, BIDU. – ideawu

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