SSDB:可用於替代Redis的高性能NoSQL數據庫

NoSQL Redis 編程語言 LevelDB 攻城獅的自述 2017-06-09

SSDB:可用於替代Redis的高性能NoSQL數據庫

SSDB 是一個使用 C/C++ 語言開發的高性能 NoSQL 數據庫, 支持 KV, list, map(hash), zset(sorted set) 等數據結構, 用來替代或者與 Redis 配合存儲十億級別列表的數據。實現上其使用了 Google 的 LevelDB作為存儲引擎,SSDB 不會像 Redis 一樣狂吃內存,而是將大部分數據存儲到磁盤上。最重要的是,SSDB採用了New BSD License 開源協議進行了開源,目前已經在許多互聯網公司得到廣泛使用, 如奇虎 360, TOPGAME等。其有以下幾個特點:

  • 替代 Redis 數據庫, Redis 的 100 倍容量

  • LevelDB 網絡支持, 使用 C/C++ 開發

  • Redis API 兼容, 支持 Redis 客戶端

  • 適合存儲集合數據, 如 list, hash, zset...

  • 客戶端 API 支持的語言包括: C++, PHP, Python, Java, Go

  • 持久化的隊列服務

  • 主從複製, 負載均衡

  • 擁有GUI管理工具(phpssdbadmin)

SSDB:可用於替代Redis的高性能NoSQL數據庫

從上面可以看到,SSDB使用了 LevelDB Storage引擎來讀寫內存或磁盤中的數據,正因為部分數據被持久化到磁盤,所有其可以存儲比 Redis 多很多的數據。


性能:

SSDB官方提供了其和 Redis 的QPS性能對比的基準測試,包括了 set\get 操作的測試,並且在不同的併發進行了對比。

SSDB:可用於替代Redis的高性能NoSQL數據庫

從圖中可以看出,不同併發的 SSDB set 操作其性能均比 Redis 稍微差了一點,但是 get 操作要比 Redis 好。

使用:

SSDB的安裝和使用都非常地簡單,並且官方還提供了 C++, PHP, Java, Go等語言的客戶端 API 文檔,但是隻有PHP的文檔最全,具體文檔地址參見:http://ssdb.io/docs/zh_cn/php/index.html

從Redis遷移到SSDB:

官方提供了一個工具將 Redis 中的數據遷移到 SSDB,使用如下:

各參數的含義:

  • redis_port: Redis 監聽的端口

  • redis_host: Redis 運行所在的 IP 或者主機名

  • redis_db: Redis 的 DB 編號

  • ssdb_host: SSDB 運行所在的 IP 或者主機名

  • ssdb_port: SSDB 監聽的端口

更多的關於 SSDB 和 Redis 的兼容問題可以參見:http://ssdb.io/docs/zh_cn/redis-to-ssdb.html

相關推薦

推薦中...