一、
【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 |