python - RocksDB 可以处理多个只读客户端吗?

标签 python key-value leveldb kyotocabinet rocksdb

<分区>

我需要一个键值数据库,比如 redis 或 memcached,但不在内存中,而是在磁盘上。填充数据库后(我们经常从头开始),我实际上只需要 get 操作,但是来自许多不同的进程(所以 Kyoto Cabinet 和 LevelDB 对我不起作用)。

我需要大约 500 万个 key 和 ~10-30gb 数据,因此其他一些简单的数据库无法正常工作。

我找不到关于 RocksDB 是否存在的任何信息可以处理多个只读客户端;在我的操作系统上构建并不是直接的,所以我想在这样做之前先问一下。如果不能,是否有任何数据库可以工作?最好使用 Ubuntu 软件包和 Python 绑定(bind) ;-)。

我们现在只使用很多很多小文件,但它真的很糟糕,因为我们想要轻松备份、复制等。我也怀疑这可能会导致速度变慢,但这并不重要。

最佳答案

是的,您应该能够在单个 RocksDB 数据库上运行多个只读客户端。只需使用 DB::OpenForReadOnly() 调用打开数据库:https://github.com/facebook/rocksdb/blob/master/include/rocksdb/db.h#L108

关于python - RocksDB 可以处理多个只读客户端吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23271361/

相关文章:

python - 将 subprocess.call 与 mysqldump 一起使用

angular - 在angular中使用键值管道时如何跳过ngFor中的特定键值对

database - LevelDB 是否支持热备份(或等效的)?

Swift - 具有不同值的重复键

node.js - 长级别升级查询

struct - Golang levelDB 结构

python - 在 VS Code 中使用路径作为参数值设置自定义启动器(Flask - 证书路径)

python - 在mysql加载数据文件导入期间删除CSV公式值

python - 如何在 Mac OS X 中从 Python 以 root 身份运行命令?

java - 如何正确使用HashMap?