开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 12849|回复: 301
收起左侧

[易源码分享] 基于Facebook开源的 rocksdb 数据库模块

    [复制链接]
结帖率:100% (1/1)
发表于 2023-5-14 21:08:59 | 显示全部楼层 |阅读模式   广东省深圳市
分享源码
界面截图:
是否带模块: 调用了模块
备注说明: -
本帖最后由 Buei 于 2023-5-15 12:37 编辑

什么是rocksdb?
  • RocksDB是一个 持久的键值存储库 ,它是用C++编写的,适合在快速、低延迟的存储设备上存储数据。它是由Facebook数据库工程团队开发和维护。

LevelDB 有什么区别?
  • RocksDB和LevelDB都是基于LSM-Tree的嵌入式键值存储库,但RocksDB是在LevelDB的基础上进行了优化和增强


  • RocksDB可以支持 多线程 合并文件,而LevelDB是 单线程
  • RocksDB可以根据需要开辟 多个Memtable ,而LevelDB只有 一个Memtable
  • RocksDB可支持多种压缩算法,而LevelDB只支持snappy
  • 单线程模式下 LevelDB 可能稍微快一点,而在多线程下 RocksDB 就会发挥出它的优势了


rocksdb的优点
  • 高性能:RocksDB 使用了很多优化技术,如多线程、高效的数据结构等,因此具有非常高的读写性能。
  • 可扩展性:RocksDB 可以处理大规模的数据,并支持自动分片和负载均衡等功能,因此可以很好地应对高并发访问。
  • 可靠性:RocksDB 支持 ACID 事务,保证数据的一致性和可靠性。
  • 灵活性:RocksDB 支持多种数据格式,包括内存映射文件、纯内存等,让用户可以灵活选择适合自己的存储方式。
  • RocksDB在存储数据时是按照键的排序方式进行存储的,它并没有明确的容量限制,可以存储非常大的数据 [理论上无限制容量]。而类似MMKV框架限制容量的方式是使用了一种固定大小的映射文件,即在创建MMKV实例时就已经确定了最大容量,超过容量时就不能再写入数据[大概在 4GB 左右]




下图为 rocksdb和leveldb  单/多线程 写入对比
理论上在单线程下 RocksDB应该比levldb稍微略慢一点
图中可看到300W多线程写入RocksDB一瞬间完成


leveldb和RocksDB单线程写入对比

leveldb和RocksDB单线程写入对比

leveldb和RocksDB多线程写入对比

leveldb和RocksDB多线程写入对比




NA39LFNSNBRWEXQVJ0M.png




更新日志  2023/05/15 12:00  - V1.2

  • 增加 取/置长整数
  • 增加 rocksdb_启动参数 [最大后台flush数,最大后台compaction数,允许并发写入memtable,允许写线程自适应yield,允许流水线写入]
  • 增加 rocksdb_Flush 函数 [将缓存写入硬盘]  用于将内存中的数据刷入磁盘中
  • 增加  rocksdb_启动参数 [IncreaseParallelism并发度]  可以增加并行度,提高读写性能,但增加并行度也会增加CPU的使用率
  • 优化 销毁 函数 默认为安全销毁
  • 优化 快速清空 函数



编译下和未编译下运行耗时相差很大,建议编译后再测试
解压密码:neko_






补充内容 (2023-5-31 21:37):
1.3版本已发布 请看置顶

补充内容 (2023-7-29 19:56):
1.4版本已发布 请看置顶

RocksDB.rar

2.44 MB, 下载次数: 237, 下载积分: 精币 -2 枚

1.2

点评

大佬,可以按插入先后排序吗? 我发现里面的数据好像是自动按首位排序的?   浙江省台州市  发表于 2023-9-10 16:44
斩月网络验证QQ群:104177594   宁夏回族自治区中卫市  发表于 2023-8-31 22:57

评分

参与人数 22好评 +17 精币 +48 收起 理由
六先生 + 1 + 2 支持开源~!感谢分享
文西哥 + 2 YYDS~!
wa690602724 + 1 感谢分享,很给力!~
kyo9766 + 2 感谢分享,很给力!~
夜的静night + 1 + 2 支持开源~!感谢分享
难解 + 1 + 1 YYDS~!
dxp04 + 1 + 2 支持开源~!感谢分享
胖虎O + 1 + 1 YYDS~!
fengyishen + 1 + 3 好久没有看到这么优质的帖子了!~
cayter + 1 + 2 支持开源~!感谢分享
易语言资源网 + 1 + 3 开源精神必须支持~
默念、 + 1 + 1 支持开源~!感谢分享
空竹 + 5 YYDS~!
壮志豪情 + 1 + 3 开源精神必须支持~
※逍遥游※ + 1 感谢分享,很给力!~
sinewtec + 1 + 3 感谢发布原创作品,精易因你更精彩!
涛哥娱乐网 + 1 + 1 支持开源~!感谢分享
冰点 + 1 + 5 感谢发布原创作品,精易因你更精彩!
我爱逛精易 + 1 + 2 开源精神必须支持~
Bszk + 1 + 3 支持开源~!感谢分享
sunmoonstar + 1 + 1 感谢分享,很给力!~
你是我的眼哦 + 1 + 2 感谢发布原创作品,精易因你更精彩!

查看全部评分


本帖被以下淘专辑推荐:

结帖率:100% (1/1)

签到天数: 27 天

 楼主| 发表于 2023-8-3 20:09:46 | 显示全部楼层   广东省深圳市


更新日志  2023/08/03 20:05  - V1.41

修复 由C++增强编译导致较老版本CPU不兼容 [载入时报错 无法找到指定DLL库文件“rocksdb_xc.dll”中的输出命令 如果使用此版本任然报错,请使用DX修复工具[增强版]修复C++环境 下载https://blog.csdn.net/vbcom/article/details/7245186]
修复 写/读 浮点,字节集 错误
增加 写/读 字节集键
增加 迭代器 取整数,长整数,双精度,逻辑型数据 -取字节集键
增加 事务 添加整数,长整数,双精度,逻辑型数据 -取当前位置键_字节集 [压入更名为添加]-----
-取当前位置键_字节集 更名为:取当前位置键W
增加 允许低优先级写入[low_pri]
修复 强制写入启用失败


- >  以下为Facebook官方更新日志 - V8.3.2

  • Reduced cases of illegally using Env::Default() during static destruction by never destroying the internal PosixEnv itself (except for builds checking for memory leaks).(#11538)
  • Fixed higher read QPS during DB::Open() reading files created prior to #11406, especially when reading many small file (size < 52 MB) during DB::Open() and partitioned filter or index is used.







下载地址.zip

323 Bytes, 下载次数: 71, 下载积分: 精币 -2 枚

1.41

点评

大佬,可以按插入先后排序吗? 我发现里面的数据好像是自动按首位排序的?   浙江省台州市  发表于 2023-9-10 16:45

评分

参与人数 2好评 +2 精币 +7 收起 理由
kirbysxh + 1 + 4 感谢分享,很给力!~
文西哥 + 1 + 3 感谢分享,很给力!~

查看全部评分

回复 支持 反对

使用道具 举报

签到天数: 24 天

发表于 2024-4-7 11:53:37 | 显示全部楼层   黑龙江省大庆市
牛皮,支持,谢谢分享。
回复 支持 反对

使用道具 举报

结帖率:88% (127/144)

签到天数: 11 天

发表于 2024-4-7 11:02:13 | 显示全部楼层   四川省眉山市
1.41压缩文件打不开,密码不对,请核实下
回复 支持 反对

使用道具 举报

结帖率:88% (127/144)

签到天数: 11 天

发表于 2024-4-6 20:51:41 | 显示全部楼层   四川省眉山市
谢谢,好好学习下,希望又快又好
回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 2024-3-17 01:55:44 | 显示全部楼层   河南省济源市
学习一下
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 3 天

发表于 2024-1-14 20:44:09 | 显示全部楼层   四川省广安市
看看啊啊 啊啊
回复 支持 反对

使用道具 举报

结帖率:93% (14/15)

签到天数: 3 天

发表于 2024-1-4 21:58:51 | 显示全部楼层   广东省深圳市
谢谢大佬的分享
回复 支持 反对

使用道具 举报

结帖率:93% (14/15)

签到天数: 3 天

发表于 2024-1-4 21:58:07 | 显示全部楼层   广东省深圳市
感谢下分享了
回复 支持 反对

使用道具 举报

签到天数: 13 天

发表于 2024-1-4 04:03:31 | 显示全部楼层   天津市天津市
Buei 发表于 2023-8-3 20:09
更新日志  2023/08/03 20:05  - V1.41

修复 由C++增强编译导致较老版本CPU不兼容 [载入时报错 无法找到 ...

        感谢分享,很给力!~
回复 支持 反对

使用道具 举报

签到天数: 2 天

发表于 2023-12-28 14:43:50 | 显示全部楼层   广东省广州市
密码呢、、、、、、、、、、、、、、、、、、、、、、、、、、
回复 支持 反对

使用道具 举报

结帖率:33% (1/3)

签到天数: 8 天

发表于 2023-12-27 15:51:57 | 显示全部楼层   云南省丽江市
密码呢、、、、、、、、、、、、、、、、、、、、、、、、、、
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表