1. ssdb简介
“一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis.”官网上面是这么说的。
个人理解是一个兼容redis数据结构,底层用leveldb的nosql数据库。
2. ssdb安装
|
|
先得把gcc-c++安装好。如果有问题,目录删了重新编译。。如果说在编译鲁棒性上面redis说完虐ssdb,应该没人会反对吧。
3. 配置
基本都是默认配置,redis测了开aof的和不开aof,当然开aof qps会下降一些,后面有详细数据。
ssdb也是默认配置,开了binlog。
注意一下redis对内核设置有要求:
|
|
两个版本分别为 4.0.6 和1.9.6。
机器是在8核16G的机器上面测的。
4. 压测注意事项
很有意思的是2个程序都自带了压测工具,redis的叫redis-benchmark,
|
|
注意,client都是开50个线程,request却差了10倍。redis默认是10w,ssdb默认是1w,所以ssdb测时候指定了10w个连接。
|
|
5. 结论
ssdb的结果:
redis:
PING_INLINE | PING_BULK | SET | GET | INCR | LPUSH | RPUSH | LPOP | RPOP | SADD | HSET | SPOP | LPUSH | LRANGE_100 | LRANGE_300 | LRANGE_500 | LRANGE_600 | MSET |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
152207.00 | 137741.05 | 120192.30 | 141843.97 | 168634.06 | 179211.45 | 140056.03 | 150150.14 | 136798.91 | 144717.80 | 132978.73 | 142653.36 | 173010.38 | 49236.83 | 20898.64 | 15415.45 | 11823.13 | 116414.43 |
146627.56 | 158478.61 | 162866.44 | 149031.30 | 147275.41 | 149031.30 | 169491.53 | 175438.59 | 163398.70 | 166112.95 | 142045.45 | 159489.64 | 152905.20 | 63856.96 | 23218.02 | 14925.37 | 10511.93 | 74515.65 |
第二行是开了aof的数据,set反而高了。
ssdb:
set | get | del | hset | hget | hdel | zset | zget | zdel | qpush | qpop |
---|---|---|---|---|---|---|---|---|---|---|
82281 | 43160 | 65208 | 41184 | 43745 | 48159 | 38246 | 42734 | 36934 | 42031 | 30591 |
redis不论set,get都是15w左右的qps,ssdb差不多是3,4w左右,差距还是有一些的,redis基本上是全面碾压ssdb。
当然我个人觉得如果是实际业务的话,也应该在技术选型的时候压测一把,特定业务场景的压测非常重要。另外redis比ssdb优势的一点是其社区更加壮大,可运维性大于ssdb,当然这是题外话了。