|
|

分享源码
| 界面截图: |
- |
| 是否带模块: |
调用了模块 |
| 备注说明: |
- |
本帖最后由 Buei 于 2025-8-24 16:43 编辑
Rocksdb
由于之前帖子内容太多,这里重新发布一篇,之前帖子地址--> 这里
什么是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 支持 ACID 事务,保证数据的一致性和可靠性。
- 灵活性:RocksDB 支持多种数据格式,包括内存映射文件、纯内存等,让用户可以灵活选择适合自己的存储方式。
- RocksDB在存储数据时是按照键的排序方式进行存储的,它并没有明确的容量限制,可以存储非常大的数据 [理论上无限制容量]。而类似MMKV框架限制容量的方式是使用了一种固定大小的映射文件,即在创建MMKV实例时就已经确定了最大容量,超过容量时就不能再写入数据[大概在 4GB 左右]

下图为 rocksdb和leveldb 单/多线程 写入对比
理论上在单线程下 RocksDB应该比levldb稍微略慢一点
图中可看到300W多线程写入RocksDB一瞬间完成
更新日志 - V1.8 本次更新内容很多[使用前记得备份数据库] [rocksdb内核版本:10.5.0]
- 之前版本已经不符合现在设计理念,大部分地方都已经重构
- 写/读 改为置数据()/取数据() 链式取出
- 新增 支持自定义数据的写入/读取
- 新增 范围删除/清空方法
- 新增 Batch事务类 范围删除/事务回滚/...
- 新增 错误返回
- 修复列族下无法使用Merge合并方法
- ...
- 相比于评估版解决:
- 文本型在空键情况下会指向野指针
- 自定义参数(二层嵌入下)首个参数为整数型且等于1时会被判定为字节集指针 (此问题还要进一步评估稳定性)
- 新增 迭代器类更新方法
解压密码:4369616c6c6f

|
|
-
-
下载地址.txt
47 Bytes, 下载次数: 243, 下载积分: 精币 -2 枚
售价: 3 枚 精币 [记录]
1.8
评分
-
| 参与人数 11 | 好评 +10 |
精币 +23 |
收起
理由
|
金哥专用
| + 1 |
+ 3 |
感谢分享,很给力!~ |
大头寀
| + 1 |
+ 2 |
新技能已get√ |
陌迁尘
| + 1 |
+ 2 |
新技能已get√ |
汉族
| + 1 |
+ 3 |
新技能已get√ |
远赴
| + 1 |
+ 3 |
新技能已get√ |
冷渣渣
| + 1 |
|
↓↓如果这玩意儿你也需要视频教程的话 那你目前的项目也用不上这个↓↓. |
qq1056123185
| + 1 |
+ 3 |
感谢分享,这么好的东西,应该有一个完善的教程视频,不然用不明白~. |
cui870222829
| |
+ 1 |
感谢分享,很给力!~ |
dghjgg
| + 1 |
+ 2 |
支持 |
七散
| + 1 |
+ 2 |
感谢发布原创作品,精易因你更精彩! |
quary
| + 1 |
+ 2 |
感谢发布原创作品,精易因你更精彩! |
查看全部评分
本帖被以下淘专辑推荐:
- · 个人收藏|主题: 2652, 订阅: 86
- · 阅微温婉|主题: 57, 订阅: 3
|