写点什么

LedisDB——Go 编写的高性能 NoSQL 数据库

  • 2014-08-13
  • 本文字数:943 字

    阅读完需:约 3 分钟

在 7 月 24 号发布 0.1 版本后,8 月 5 号 LedisDB 0.2 版本发布。LedisDB 是一个用 Go 语言编写的高性能 NoSQL 数据库,它支持多种高级数据结构,如 kv、list、hash、zset、bitmap,也许可以作为 Redis 的替代方案。

LedisDB 现在支持多种后台数据库,包括 LevelDB、goleveldb、LMDB、RocksDB 和 BoltDB。用户可以通过测试选择一种合适的。如果用户没有进行配置,那么它将默认使用 goleveldb 来存储数据。它提供了两种设置存储数据库的方式,一种方式是在服务器配置文件中设定:

db_name = "leveldb"另一种方式是在命令标志中指定:

ledis-server -config=/etc/ledis.conf -db_name=leveldb第二种方式会覆盖第一种方式。但有一点必须注意,在运行时更改存储数据库非常危险,如果这样做,那么 LedisDB 将不会保证数据有效性。

LedisDB 使用 toml 作为首选配置格式,不过,因为某些历史原因它也支持 json。LedisDB 源代码中的基本配置./etc/ledis.conf 可以提供一些参考。当然,用户也可以不进行配置,它会使用默认配置。

LedisDB 还有其它若干重要的特性:

  • 存储大量的数据,而无需考虑内存瓶颈。
  • 支持失效和 TTL。
  • 直接支持 Redis 客户端,如 redis-cli。
  • 支持多种客户端,包括 Go、Python 和 Lua(OpenResty),后续还会增加对 C/C++ 客户端 API 的支持。
  • 可以方便地嵌入用户自己的 Go 应用程序。
  • 支持 Restful API 及 json/bson/msgpack 输出格式。
  • 复制以保证数据安全。
  • 提供加载、转储和修复数据库的工具。

几天前的一次基准测试得出了这样的结论:

  • LedisDB 使用 leveldb 和 rocksdb 作为后台存储数据库时比 Redis 或 SSDB 略慢。
  • 在 LedisDB 支持的数据库中,Imdb 的表现要好于其它数据库,尤其是 zrange* 操作。

虽然测试结果不尽如人意,但它仍然是生产环境中的一种可选 NoSQL 方案。最后,还有一点需要注意,LedisDB 现在更改了数据库保存路径。对于 LevelDB,存储路径为 data­­­_dir/leveldb;对于 LMDB,存储路径为 data­­_dir/lmdb。

要了解更多关于 LedisDB 的细节,可以登录 GitHub 及其官方网站。此外,作者还提供了中文博客


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-08-13 02:4110705
用户头像

发布了 256 篇内容, 共 96.3 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

HarmonyOS NEXT——独立开发者们的机遇之门

最新动态

获取1688商品SKU信息API接口及实战应用

科普小能手

数据挖掘 数据分析 电商 API 接口 1688 API

Sonarqube 代码分析技术体系

测试人

软件测试

ITIL 4的4个维度

ServiceDesk_Plus

ITIL

共探数据可信流通时代的密态新算力|走进隐语年度嘉年华精彩现场

隐语SecretFlow

【YashanDB知识库】个别数据库用户无法登录数据库,报错 io fail:IO.EOF

YashanDB

数据库 yashandb

HarmonyOSNext 端云一体化(1)

万少

HarmonyOS NEXT

ELB UDP健康检查常见故障分析

天翼云开发者社区

云计算 网络协议 udp 弹性负载均衡

【YashanDB知识库】ycm托管主机报错libnsl.so.1 no such file or directory

YashanDB

数据库 yashandb

数字孪生丨如何利用现有数据提升产品耐久性?

Altair RapidMiner

大数据 数字孪生 智能制造 altair 仿真设计

【YashanDB知识库】过期统计信息导致SQL执行计划变差

YashanDB

数据库 yashandb

【YashanDB知识库】隐藏参数怎么查看初始值

YashanDB

数据库 yashandb

爆肝整理!一文带你吃透软件测试

测吧(北京)科技有限公司

测试

benchANT 性能榜单技术解读 Part 2:查询优化

KaiwuDB

数据库 分布式多模

【YashanDB知识库】调用外部UDF未能识别Java环境配置

YashanDB

数据库 yashandb

什么是DNS缓存?DNS缓存有什么用?

国科云

【YashanDB知识库】安装共享集群时报错:YAS-05721 invalid input parameter, reason: node name invalid

YashanDB

数据库 yashandb

LedisDB——Go编写的高性能NoSQL数据库_数据库_马德奎_InfoQ精选文章