Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 简单、快速、可靠的数据库(NoSQL)_Database_Nosql_Memory Mapped Files - Fatal编程技术网

Database 简单、快速、可靠的数据库(NoSQL)

Database 简单、快速、可靠的数据库(NoSQL),database,nosql,memory-mapped-files,Database,Nosql,Memory Mapped Files,我正在寻找一种解决方案,将持久性添加到我的本机代码应用程序中。它应该简单(无SQL)、快速,而且最重要的是可靠 我能想到的最好的方法是使用内存映射文件。它尽可能地简单和快速-您只需将值存储在“内存”中的普通数据数组中。但是,我认为它不是很可靠——电源故障可能会使数据库处于不一致或损坏的状态。能够事务性地将一组内存映射文件同步到磁盘将解决这个问题,但我认为这是不可能的。此外,除非文件系统支持快照或COW克隆(例如),否则备份意味着在复制文件时必须完全停止应用程序 有人有更好的想法吗?你的需求清单听

我正在寻找一种解决方案,将持久性添加到我的本机代码应用程序中。它应该简单(无SQL)、快速,而且最重要的是可靠

我能想到的最好的方法是使用内存映射文件。它尽可能地简单和快速-您只需将值存储在“内存”中的普通数据数组中。但是,我认为它不是很可靠——电源故障可能会使数据库处于不一致或损坏的状态。能够事务性地将一组内存映射文件同步到磁盘将解决这个问题,但我认为这是不可能的。此外,除非文件系统支持快照或COW克隆(例如),否则备份意味着在复制文件时必须完全停止应用程序


有人有更好的想法吗?

你的需求清单听起来像Redis。更多信息,请参阅

另一种可能性是卡桑德拉。更多信息请参见。

东京内阁

伯克利DB

RocksDB或levelDB是其他不错的选择

没有SQL,SQLite怎么样?这仅仅是您试图避免的数据库吗?SQLite只是一个平面文件。@coreyward:嗯,你知道什么是内存映射文件,对吗?编辑文件映射到的“内存”也会编辑磁盘上的文件,只是不会立即编辑@汤米:我只是想避免无意义的字符串转换、字符串转义等@CyberShadow:在大多数情况下,你都需要某种形式的值转换…@Tommy:实际上,也许,但也不一定是这样,因为将指令转换成人类可读的语言只是为了稍后能被解析回去是愚蠢的。我只需要读/写一些值,而不是执行三级联接!:我想他正在寻找一个更简单的解决方案。谢谢。我看了看卡桑德拉,但看起来有点过头了。任何专注于可伸缩性的东西都可能太过满足我的需求了。Berkeley DB看起来真不错,谢谢。