1. 程式人生 > >SSDB 與 Redis命令對比

SSDB 與 Redis命令對比

一、

【SSDB介紹】

一個高效能的支援豐富資料結構的 NoSQL 資料庫, 用於替代 Redis.(源自官方)

特性(源自官方)
替代 Redis 資料庫, Redis 的 100 倍容量 
LevelDB 網路支援, 使用 C/C++ 開發 
Redis API 相容, 支援 Redis 客戶端 
適合儲存集合資料, 如 list, hash, zset… 
客戶端 API 支援的語言包括: C++, PHP, Python, Java, Go 
持久化的佇列服務 
主從複製, 負載均衡

[參考]- 知乎:https://www.zhihu.com/question/40733101 
ssdb主要是可以把儲存不下的持久化到硬碟,解決Redis容量有限問題,如果你在生產系統中,記憶體不夠,是要人命的。

————————————

【Redis介紹】
Redis的優點:
支援多種資料結構,如 string(字串)、 list(雙向連結串列)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基數估算) 
支援持久化操作,可以進行aof及rdb資料持久化到磁碟,從而進行資料備份或資料恢復等操作,較好的防止資料丟失的手段。 
支援通過Replication進行資料複製,通過master-slave機制,可以實時進行資料的同步複製,支援多級複製和增量複製,master-slave機制是Redis進行HA的重要手段。 
單執行緒請求,所有命令序列執行,併發情況下不需要考慮資料一致性問題。 
支援pub/sub訊息訂閱機制,可以用來進行訊息訂閱與通知。 
支援簡單的事務需求,但業界使用場景很少,並不成熟。

Redis的侷限性:
Redis只能使用單執行緒,效能受限於CPU效能,故單例項CPU最高才可能達到5-6wQPS每秒(取決於資料結構,資料大小以及伺服器硬體效能,日常環境中QPS高峰大約在1-2w左右)。 
支援簡單的事務需求,但業界使用場景很少,並不成熟,既是優點也是缺點。 
Redis在string型別上會消耗較多記憶體,可以使用dict(hash表)壓縮儲存以降低記憶體耗用。

Mc和Redis都是Key-Value型別,不適合在不同資料集之間建立關係,也不適合進行查詢搜尋。比如redis的keys pattern這種匹配操作,對redis的效能是災難。
 

二、

【ssdb的使用】:

SSDB命令的使用,更多詳情參考SSDB-API    http://ssdb.io/docs/zh_cn/commands/index.html

三、

【redis 和 ssdb 命令對比】:

  Redis SSDB
kv get get
set set
del del
incr/incrBy incr
decr/decrBy decr
getMultiple multi_get
setMultiple multi_set
del(multiple) multi_del
keys scan(for kv type only)

 

  Redis SSDB
hashmap hget hget
hset hset
hdel hdel
hIncrBy hincr
hDecrBy hdecr
hKeys hkeys
hVals hscan
hMGet multi_hget
hMSet multi_hset
hLen hsize

 

  Redis SSDB
zset zScore zget
zAdd zset
zRem zdel
zRange zrange/zscan
zRangeByScore zscan
zIncrBy zincr
zDecrBy zdecr
zCount  
zCard zsize