SurrealDB

tags: DB SurrealDB database 學習紀錄

影片

SurrealDB - Rust Embedded Database - Quick Tutorial

簡介

官網寫的

  • SurrealDB是一個端到端的雲原生數據庫,適用於Web、移動、無服務器、Jamstack、後端和傳統應用程序。
  • SurrealDB通過簡化數據庫和API堆棧、消除大多數服務器端組件的需求,讓您能夠更快、更便宜地構建安全、高效的應用程序,從而縮短現代應用程序的開發時間。
  • SurrealDB既充當數據庫,又充當現代、實時、協作式的API後端層。
  • SurrealDB可以運行為單個服務器或高可用性、高可擴展性的分佈式模式,支持從客戶端設備進行SQL查詢、GraphQL、ACID事務、WebSocket連接、結構化和非結構化數據、圖形查詢、全文索引、地理空間查詢和基於行的權限訪問。

ChatGPT 給的介紹

  • SurrealDB 是一個開源的分散式數據庫,它旨在提供高性能、高可用性和分佈式數據存儲解決方案。它具有以下主要特點:
  1. 分散式架構:SurrealDB 運行在多台機器上,可以自動進行數據分佈和容錯處理,實現高可用性和容錯性。
  2. 高性能:SurrealDB 使用先進的數據存儲和緩存技術,支持高效的數據讀取和寫入操作。
  3. 多種數據模型:SurrealDB 支持多種數據模型,包括關係型、文檔型、鍵值型和圖形型數據庫。
  4. 安全性:SurrealDB 支持身份驗證和授權,可以設置權限和角色,保證數據安全。
  5. 易於使用:SurrealDB 提供簡單易用的 API 和管理界面,方便開發者進行數據操作和管理。
  • 總之,SurrealDB 是一個功能強大的分散式數據庫,適用於大型應用場景,可以提供高效、高可用和安全的數據存儲和操作解決方案。

優點

  1. 高度可擴展性:SurrealDB 可以支持成千上萬的節點,並能夠自動處理負載均衡和故障恢復,因此可以輕鬆地擴展到大型分散式環境。
  2. 高可用性:SurrealDB 提供了多種故障恢復機制,包括複製和分區,以確保即使在節點故障的情況下,系統仍然可以繼續運行。
  3. 高性能:SurrealDB 可以支持高速讀取和寫入操作,並且具有優秀的併發控制機制,因此可以滿足高流量的應用需求。
  4. 易於使用:SurrealDB 提供了簡單的 API 和命令行工具,方便開發人員進行資料存取和管理。

缺點

  1. 相對較新:SurrealDB 是一個相對較新的系統,因此可能存在一些未知的問題和風險。
  2. 學習曲線較高:SurrealDB 的設計和實現比較複雜,因此對於一般開發人員來說,學習曲線可能較高。
  3. 缺乏生態系統支持:由於 SurrealDB 是一個新興的系統,因此缺乏像其他資料庫管理系統那樣豐富的生態系統支持和社區資源。

官方相關

官網

github

docker images

使用紀錄

docker up service

  • 起一個 8000 port 帳密都是 root 的最高權限帳號
docker run --rm -p 8000:8000 surrealdb/surrealdb:latest start --user root --pass root
  • 掛 volume
docker run --rm -p 8000:8000 -v $(pwd)/mydata:/mydata surrealdb/surrealdb:latest start --user root --pass root file:/mydata/mydatabase.db