mysql nosql sqlite_自己做了一个轻量级的 NoSQL 数据库
給大家介紹一個個人作品,叫 PoloDB,一個非常輕量級的 NoSQL 數據庫,有著類似 MongoDB 的 API,主打幾個特性:
輕量級
沒有像 MySQL 那樣的獨立進程,它可以編譯成靜態庫或者動態庫,集成在你的應用里面,像 SQLite 一樣。
只需要很少資源就能夠啟動,不像 MongoDB,需要很強大的電腦,很適合分發到用戶的設備上去。一般來說,用戶的設備的配置不像服務器那么強大。比如你想在普通用戶的 PC 甚至手機上運行一個重量級數據庫,幾乎不可能。如果一個客戶端需要一個數據庫,那么就需要這種輕量級的數據庫。
在磁盤上就只有一個文件,很容易傳輸、分發、備份。不需要再打包,導出。
可移植性
PoloDB 是用 Rust 寫的,可以運行在大多數平臺上。目前來說,我已經讓它支持了 X86 上的 macOS,Linux 和 Windows 。之后,支持移動平臺( iOS/Android )也在計劃之中。像樹莓派、龍芯、M1,應該也沒問題。
PoloDB 還支持非常豐富的語言綁定。C/C++ 和 Rust 可以直接使用。現在已經可以通過 Python 和 Node.js 來使用 PoloDB 了,適配層已經開發完。以后越來越多語言可以接入。
靈活性
NoSQL 數據庫,可以像 MongoDB 一樣使用,很靈活。數據操作讀寫都是通過 JSON,不需要創建 schema,打開數據庫直接可以插入數據。
現在的應用都迭代非常快,如果需要一種非常靈活,可以快速支持各種需求的數據庫,像 PoloDB 這種 NoSQL 就很合適。
功能齊全
雖然說是輕量級的數據庫,但是一個數據庫該有的功能,PoloDB 也不會落下。比如說,現在已經支持原子提交(事務)。以后像數據索引這一類數據庫該有的功能也會慢慢提供。之后通過拓展 API,會有越來越多的功能加進來,比如數據加密、數據備份、數據處理等等,有很大的想象空間。當然這些拓展功能都是可選的,因為要保持數據庫本身是輕量級的。
我現在看到很多人,很多應用喜歡把數據存到 JSON 文件里面。有了 PoloDB 之后,可能就會更加優雅。除了可以用上數據庫的功能,也可以防止一下子把大量數據讀到內存。因為 PoloDB 里面通過自身結構可以只讀取你需要的那一部分數據,對性能大有益處。寫入也是同理的。
開源
現在來說這是我的一個業余的個人項目,我都是用下班時間來寫的。代碼都開源在 Github 上面。大家喜歡的話,可以自行下載、review 里面的實現細節。我感覺 PoloDB 還是一個蠻有意思的項目,所以源碼也和大家分享。最重要的,還是希望和大家交流。
當然了,這是我幾個月前開始開發的項目,現在還是一個很早期的階段,但是也已經基本可以跑起來了。這個項目看起來很精簡、很輕量,但是里面實現的細節并不簡單。接下來還有非常多的工作要做,比如寫一些解釋它工作原理的文檔,寫很多嚴格的單元測試,給各種平臺、語言做適配。歡迎大家試用,提 issue 和 MR 。
總結
以上是生活随笔為你收集整理的mysql nosql sqlite_自己做了一个轻量级的 NoSQL 数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: echarts 折线图悬停拐点大小不变_
- 下一篇: python实现矢量分级渲染_用 Pyt