成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

RoseDB V2 版本發布!你發現了什么?

存儲 數據管理
RoseDB 存儲數據的文件使用預寫日志(Write Ahead Log)進行了重新設計,這些日志文件是具有 block 緩存的只追加寫入(append-only)文件。

RoseDB V2 重構的第一個版本發布了!

RoseDB 是一個基于 Bitcask 存儲模型,輕量、快速、可靠的 KV 存儲引擎。Bitcask 存儲模型的設計主要受到日志結構化的文件系統和日志文件合并的啟發。

感興趣可參考 Bitcask 論文:https://riak.com/assets/bitcask-intro.pdf

RoseDB 存儲數據的文件使用預寫日志(Write Ahead Log)進行了重新設計,這些日志文件是具有 block 緩存的只追加寫入(append-only)文件。

wal: https://github.com/rosedblabs/wal

我將原來 rosedb 中的 Redis 數據結構和協議拆分了出去,后面會單獨形成一個項目,方便接入不同的存儲引擎,比如 rosedb、badger、pebble、levledb 等等。

所以 rosedb 只專注于單機存儲引擎的功能,目前處于積極維護狀態,歡迎大家 issue 或者貢獻,點點 start ??。 

項目地址:https://github.com/rosedblabs/rosedb

以下是 RoseDB 的一些簡單介紹和使用示例:

主要特點

優勢

讀寫低延遲

這是由于 Bitcask 存儲模型文件的追加寫入特性,充分利用順序 IO 的優勢。高吞吐量,即使數據完全無序

寫入 RoseDB 的數據不需要在磁盤上排序,Bitcask 的日志結構文件設計在寫入過程中減少了磁盤磁頭的移動。

能夠處理大于內存的數據集,性能穩定

RoseDB 的數據訪問涉及對內存中的索引數據結構進行直接查找,這使得即使數據集非常大,查找數據也非常高效。

一次磁盤 IO 可以獲取任意鍵值對

RoseDB 的內存索引數據結構直接指向數據所在的磁盤位置,不需要多次磁盤尋址來讀取一個值,有時甚至不需要尋址,這歸功于操作系統的文件系統緩存以及 WAL 的 block 緩存。

性能快速穩定

RoseDB 寫入操作最多需要一次對當前打開文件的尾部的尋址,然后進行追加寫入,寫入后會更新內存。這個流程不會受到數據庫數據量大小的影響,因此性能穩定。

崩潰恢復快速

使用 RoseDB 的崩潰恢復很容易也很快,因為 RoseDB 文件是只追加寫入一次的。恢復操作需要檢查記錄并驗證CRC數據,以確保數據一致。

備份簡單

在大多數系統中,備份可能非常復雜。RoseDB 通過其只追加寫入一次的磁盤格式簡化了此過程。任何按磁盤塊順序存檔或復制文件的工具都將正確備份或復制 RoseDB 數據庫。

批處理操作可以保證原子性、一致性和持久性

RoseDB 支持批處理操作,這些操作是原子、一致和持久的。批處理中的新寫入操作在提交之前被緩存在內存中。如果批處理成功提交,批處理中的所有寫入操作將持久保存到磁盤。如果批處理失敗,批處理中的所有寫入操作將被丟棄。即一個批處理操作中的所有寫入操作要么全部成功,要么全部失敗。

缺點

所有的 key 必須在內存中維護

RoseDB 始終將所有 key 保留在內存中,這意味著您的系統必須具有足夠的內存來容納所有的 key。

快速上手

基本操作

package main

import "github.com/rosedblabs/rosedb/v2"

func main() {
 // 指定選項
 options := rosedb.DefaultOptions
 options.DirPath = "/tmp/rosedb_basic"

 // 打開數據庫
 db, err := rosedb.Open(options)
 if err != nil {
  panic(err)
 }
 defer func() {
  _ = db.Close()
 }()

 // 設置鍵值對
 err = db.Put([]byte("name"), []byte("rosedb"))
 if err != nil {
  panic(err)
 }

 // 獲取鍵值對
 val, err := db.Get([]byte("name"))
 if err != nil {
  panic(err)
 }
 println(string(val))

 // 刪除鍵值對
 err = db.Delete([]byte("name"))
 if err != nil {
  panic(err)
 }
}

批處理操作

// 創建批處理
 batch := db.NewBatch(rosedb.DefaultBatchOptions)

 // 設置鍵值對
 _ = batch.Put([]byte("name"), []byte("rosedb"))

 // 獲取鍵值對
 val, _ := batch.Get([]byte("name"))
 println(string(val))

 // 刪除鍵值對
 _ = batch.Delete([]byte("name"))

 // 提交批處理
 _ = batch.Commit()

完整代碼可查看 examples 示例代碼。

責任編輯:武曉燕 來源: roseduan寫字的地方
相關推薦

2023-06-24 23:11:07

2024-11-05 09:47:08

VGG網絡模型

2024-05-20 08:25:55

2020-04-14 15:30:00

微信群管理朋友圈

2021-10-29 11:45:26

Python代碼Python 3.

2022-04-26 06:43:12

文檔TCPLinux

2012-04-24 18:10:56

華為E5

2021-03-06 13:31:52

網絡釣魚惡意郵件攻擊

2020-06-16 08:39:35

JavaScript圖像處理庫

2010-08-05 17:00:04

RIP V2協議

2010-08-06 14:07:21

RIP V2

2021-07-15 10:14:37

網絡安全漏洞攻擊

2021-08-19 15:05:08

微信功能技巧

2020-04-01 08:40:44

Vue.jsweb開發

2021-06-17 10:01:54

APT活動Victory 后門惡意軟件

2022-04-18 07:42:31

配置機制Spring

2024-06-03 11:43:55

2021-01-26 11:16:12

漏洞網絡安全網絡攻擊

2021-01-21 09:35:36

云計算云計算產業云應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产91乱码一区二区三区 | 午夜精品 | 久草中文在线观看 | 一二三区av | 蜜臀av日日欢夜夜爽一区 | 久久精品国产亚洲一区二区 | 狠狠狠干 | 国产一区二区三区在线 | 午夜精品久久久久久久久久久久久 | 精品国产乱码久久久久久闺蜜 | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 米奇7777狠狠狠狠视频 | 男人久久天堂 | 国产九九九 | 91中文在线观看 | 国产精品免费一区二区三区四区 | 亚洲一区视频在线 | 国产午夜精品一区二区三区四区 | 欧美日本在线观看 | 日本涩涩网 | 亚洲精品视频一区二区三区 | 国产91一区 | 成人亚洲视频 | 国产欧美精品一区二区三区 | 超碰日韩 | 亚洲精色| 中文av网站| xx视频在线观看 | 亚洲视频一区在线 | 中文字幕日韩欧美 | 久久亚洲天堂 | 草久久 | 嫩草视频网站 | 免费午夜视频 | 91精品国产乱码久久久久久久久 | 日本大香伊一区二区三区 | 秋霞国产 | 欧美国产日韩在线观看 | 日韩欧美不卡 | 婷婷五月色综合香五月 | 亚洲视频精品 |