Riak是否支持内存计算

时间:2014-03-17 06:43:33

标签: memory nosql riak in-memory

我是Riak的新手。我计划实现内存计算概念。这是将完整数据存储在RAM而不是硬盘中。我用MYSQL使用Memory Engine完成了它。但是我想用NoSQL尝试一下。所以首先我看了Cassandra,现在我正在研究Riak。我想知道的是,Riak在哪里存储所有数据?在内存或磁盘中?

我用Google搜索了一段时间后发现它将密钥存储在内存中以实现低延迟。但有没有办法将完整的数据存储在内存中?

如果是,那么如何设置Riak以实现内存中兼容性。我这样做是为了POC麻袋。

提前致谢。

1 个答案:

答案 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},