写点什么

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:4110628
用户头像

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

关注

评论

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

MySQL调优

Sakura

28天写作 3月日更

数据采集之Flume采集及点击流模型详解

五分钟学大数据

大数据 28天写作 3月日更 flume 点击流模型

Elasticsearch 写入流程 Making Changes Persistent

escray

elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

员工遇到问题 - 是给答案还是给引导?

石云升

项目管理 28天写作 职场经验 管理经验 3月日更

「架构师训练营 4 期」 第十一周 - 001&2

凯迪

架构师训练营 4 期

【笔记】第七周 第 2 课

Geek_娴子

简述软件不可用性及解决办法

跳蚤

ARTS - week 2

steve_lee

「架构师训练营 4 期」 第十周 - 001&2

凯迪

架构师训练营 4 期

我的学习笔记

SilentMacUser

Python JavaScript 学习 大前端 开发

大作业(一)

Binary

大作业(二)

Binary

区块链+金融落地应用详解

CECBC

金融

又一款Nginx 管理可视化神器!通过界面完成配置监控,一条龙!

Java小咖秀

nginx 运维 后端

我的Java转Go之路

roseduan

Java 转行 Go web Go 语言

多应用集中落地,四川区块链产业爆发增长

CECBC

区块链

第十一周作业

Geek_mewu4t

张开怀抱迎接Golang

Kylin

读书笔记 语法 3月日更 Java转go Go 语言

雄岸科技区块链布局价值待考

CECBC

区块链 科技

React 中 useContext 和 useMemo 一般性使用

sadhu

React useContext useMemo React Hooks

基于 SparkMLlib 智能课堂教学评价系统-系统设计(三)

大数据技术指南

大数据 spark 智能时代 28天写作 3月日更

英文IT数码类播客学习笔记

SilentMacUser

红帽 互联网 播客 计算机历史

人社部拟发10几个新职业,区块链行业占两个

CECBC

区块链人才

场景化面试:Kafka 为何有如此高的吞吐量和性能

面试官问

kafka 零拷贝 PageCache

安全架构学习总结

跳蚤

Vue3源码 | 深入理解响应式系统下篇-effect

梁龙先森

源码分析 大前端 Vue3

架构师是什么?

ES_her0

28天写作 3月日更

【得物技术】前端微服务

得物技术

微服务 大前端 得物技术

还原五百丁APP需求文档

林亚超

软件工程任务排期方法

steve_lee

区块链+版权:NFT出圈,善用技术能否“破心中贼”?

CECBC

数字技术

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