SSDB的优点:1、大数据存储能力;2、读性能优越;3、比较便宜;SSDB的缺点:1、写性能较差;2、相关教程少;3、主从复制效率很低。Redis的优点:1、数据存储在内存, 读写速度快,性能优异等;Redis 的缺点:1、数据存储在内存,主机断电则数据丢失等。
一、SSDB的优点
- 大数据存储能力:ssdb是将数据存储在硬盘中,这样就能将数据大量的长久保存。
- 读性能优越:在使用 SSDB 自带的 ssdb-bench 工具,以及 Redis 自带的 redis-benchmark 工具在相同机器上的测试中,SSDB 的读性能完全超过了 Redis。
- 比较便宜:SSDB 对内存的需求小,是个较便宜的方案。
二、SSDB的缺点
- 写性能较差:在使用 SSDB 自带的 ssdb-bench 工具,以及 Redis 自带的 redis-benchmark 工具在相同机器上的测试中,SSDB的写性能还是比 Redis 慢了 10% 左右。
- 相关教程少:由于ssdb是一个个人项目,所以相对于redis来说ssdb的一些网上学习资源要少的多。
- 主从复制效率很低:binlog和数据是分开存储的,日志冗余较多,由于ssdb本身要在多线程条件下才能发挥出更好的性能,为了使多个线程在写入binlog时能保证操作顺序和原子性,ssdb的binlog数据结构上用了一把全局锁,可想而知,这里的锁竞争会很影响性能。
三、Redis 的优点
- 数据存储在内存, 读写速度快,性能优异
- 支持数据持久化,便于数据备份、恢复
- 支持简单的事务,操作满足原子性
- 支持String、List、Hash、Set、Zset五种数据类型,满足多场景需求
- 支持主从复制,实现读写分离,分担读的压力
- 支持哨兵机制,实现自动故障转移
四、Redis 的缺点
- 数据存储在内存,主机断电则数据丢失
- 存储容量受到物理内存的限制,只能用于小数据量的高性能操作
- 在线扩容比较困难,系统上线时必须确保有足够的空间
- 用于缓存时,易出现’缓存雪崩‘,’缓存击穿‘等问题
延伸阅读
SSDB 和 Redis 的区别
redis是内存数据库,ssdb是面向硬盘的存储,二者在存储格式和读写方式上有着根本的不同。前面回答里提到的zrevrange 和 zrevrangebyscore慢,而zrange 和 zrangebyscore 还能接受,其实就是说逆序遍历比顺序遍历慢得多,其根本原因就在于逆序遍历的时候,会多一个“记录头部”定位的过程,需要不断尝试去定位到两条记录的“分界点”,而顺序遍历的时候则不需要,因为读完一条记录直接就到了下一条记录的“分界点”,并且像rocksdb之类的存储引擎都会把数据长度保存在记录的元信息里,只需要按长度读取数据就可以了。redis则不存在类似问题,因为它是完全基于指针和偏移量在内存中进行寻址来读取数据的,寻址效率高了好多个数量级。
文章标题:SSDB 和 Redis 的优缺点各有哪些,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/34706