我是Riak的新手。我计划实现内存计算概念。这是将完整数据存储在RAM而不是硬盘中。我用MYSQL使用Memory Engine完成了它。但是我想用NoSQL尝试一下。所以首先我看了Cassandra,现在我正在研究Riak。我想知道的是,Riak在哪里存储所有数据?在内存或磁盘中?
我用Google搜索了一段时间后发现它将密钥存储在内存中以实现低延迟。但有没有办法将完整的数据存储在内存中?
如果是,那么如何设置Riak以实现内存中兼容性。我这样做是为了POC麻袋。
提前致谢。
答案 0 :(得分:4)
Riak有configurable backend system。
Riak的默认后端是Bitcask。 Bitcask在写入时将所有数据保留到磁盘,同时将所有密钥保留在内存中。在读取关于特定值是否在存储器中的数据时,依赖于系统的文件高速缓存。虽然this article有点旧,但它涵盖了bitcask在高级别上如何运作良好。
如果您只想将所有内容存储在内存中而不是保留在磁盘上,则可以将Riak配置为使用memory-only backend。这是通过app.config
部分中的riak_kv
文件完成的:
{riak_kv, [
%% Storage_backend specifies the Erlang module defining the storage
%% mechanism that will be used on this node.
% {storage_backend, riak_kv_bitcask_backend},
{storage_backend, riak_kv_memory_backend},