背景
因业务需要,需要将redis换成ssdb,我们需要做一次压测,对两个数据库做一个简单的性能测试对比。
- ssdb,它的特点是基于文件存储系统所以它支撑量大的数据而不因为内存的限制约束.从官网的测试报告来看其性能也非常出色和redis相当,因此可以使用它来代替redis来进行k-v数据业务的处理.
实施
- 幸好ssdb是兼容redis的部份协议,所以直接用redis client库就可以进行一个压力测试.以于针对Redis和ssdb的几个读操做,进行一个简单的性能测试对比,这个测试不是直接在本机调用Redis和ssdb. 而是通过一个程序在别的服务器上调用.测试指令(get,hget,lregion)以下是测试过程。
- 压测: 使用自带的redis-benchmark工具,使用简单。
参考资料
「一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis.」
- https://ssdb.io/docs/zh_cn/commands/index.html
安装SSDB
代码语言:javascript复制wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zip
unzip master
cd ssdb-master
make
# optional, install ssdb in /usr/local/ssdb
sudo make install
启动SSDB
代码语言:javascript复制# start master
./ssdb-server ssdb.conf
# or start as daemon
./ssdb-server -d ssdb.conf
开始压测
- 使用自带的redis-benchmark工具,使用简单。
- 压测需要一段时间,因为它需要依次压测多个命令的结果,如:get、set、incr、lpush等等,所以我们需要耐心等待
- 全量压测命令
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000
- 全量压测结果
- 如果只需要压测某个命令,如:get,那么可以在以上的命令后加一个参数-t:
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000 -t get
- 如果只需要压测某个命令,如:set
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000 -t set
汇总压测
- 这样看起来数据很多,如果我们只想看最终的结果,可以带上参数-q,完整的命令如下:
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000 -q
结论
- 性能数据使用 redis-benchmark(Redis) 来获取.
- 以上测试结果仅仅是一些情况下的性能测试对比,不能完全表述出两者在应用的差距的结果,如果需要用到这些产品的同学不防在实施前进行一些测试为实施选择提供一个更可靠的结果.
关注「测试开发囤货」公众号回复「AI」,送你一套 Python机器学习 电子书。