图解|什么是高并发利器NoSQL( 四 )


5.3 ideawu的SSDB
SSDB是基于SSD作为底层存储介质的类Redis数据库 。
Redis过于迷人和好用 , 但是又太昂贵了 , 所以我们幻想着有一款支持Redis数据结构且容量没限制的数据库 。
这种数据库将Redis的数据结构优势和廉价磁盘介质联合起来 , 着实让人着迷 。
图解|什么是高并发利器NoSQL文章插图
没错 , SSDB就是这样一款NoSQL数据库 。
图解|什么是高并发利器NoSQL文章插图
目前SSDB的维护者并不是特别多 , 并且在集群化等方面还存在一些问题 , 不过也算是非常优秀的开源NoSQL了 。
来简单看下SSDB的基本架构:
图解|什么是高并发利器NoSQL文章插图
简单来说 , SSDB在LevelDB和Redis协议之间做了一层转换 , 从而实现命令和数据的切换 , 这就是使用存储引擎之前封装附加部分 , 从而形成完整的NoSQL 。
图解|什么是高并发利器NoSQL文章插图
5.4 360出品Pika
其实SSDB和Pika很有渊源 , SSDB的作者曾经在360工作 , 并且SSDB当时在360的生产环境中使用广泛 , Pika数据库是360基于RocksDB开发的集群化高性能NoSQL 。
Pika是360DBA团队和基础架构团队使用C++语言联合开发的类Redis存储系统 , 所以完全支持Redis协议 。
Pika是一个可持久化的大容量Redis存储服务 , 解决Redis由于存储数据量巨大而导致内存不够用的容量瓶颈 , 并且支持全同步和部分同步 。
Pika还提供了迁移工具 , 实现Redis数据到Pika的平滑迁移 , Pika的定位目标并不是取代redis, 而是作为redis的补充 , 在性能上肯定会低于Redis 。
图解|什么是高并发利器NoSQL文章插图
从整体架构可知 , Pika是多线程实现的 , 因此对多核使用效率更高 , 虽然单线程性能不如Redis , 但是多个线程一起上性能也还不错 。
Pika目前在360内部使用非常广泛 , 在一些其他的互联网公司也有使用 。
说到底NoSQL是一个实践类的项目 , 本文也不能讲述太多 , 否则很空洞 , 意义不大 。
5.5 其他NoSQL
基本上很多互联网公司都会基于LevelDB或者RocksDB开发一款自己的Key-Vaule数据库 , 有的只支持简单的string结构 , 有的完全兼容Redis协议和客户端 。
大都是解析Redis协议、使用Redis的客户端、增加一层命令解析和数据格式解析层、再有可能有多线程支持&主从化&集群化等 。
有兴趣的朋友可以一起来探讨一下 。