本文首先介绍Redis是什么,然后介绍如何在VisionFive2上编译Redis源码,以及从源码安装Redis,最后介绍如何在VisionFive2上运行Redis基准测试,并在树莓派4B上运行同一版本的Redis服务和Redis基准测试。测试结果显示,VisionFive2上Redis性能明显由于树莓派4B,这一定程度上说明——VisionFive2的CPU、内存综合性能优于树莓派4B。
一、Redis是什么
维基百科的介绍是:
Redis是一个使用ANSI C编写的开源、支持网络、基于内存、分布式、可选持久性的键值对存储数据库。
Redis官网的介绍是:
The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.
数以百万计的开发人员用作数据库、缓存、流式处理引擎和消息代理的开源内存数据存储。
1.1 更新软件源
VisionFive官方维护了Debian版本的镜像,基本上每个月都会发布新版本。
国内使用Debian更新,需要修改apt软件源,可以在debian官网找到国内镜像:
https://www.debian.org/mirror/list.zh-cn.html
例如,我找到的:
http://ftp.cn.debian.org/debian/
可以将原来 /etc/apt/source.list 文件中的链接全部替换为 http://ftp.cn.debian.org/debian/
之后,再使用 apt update 更新本地包索引,下次 apt install 速度就会更快了。
二、源码编译Redis
2.1 安装git和编译工具链
sudo apt install git build-essential
2.2 下载Redis源码
安装完git之后,就可以使用git下载Redis源码了:
git clone https://github.com/redis/redis.git
下载完成后,使用如下命令切换到稳定版本的tag,例如最近的 7.2.3:
git checkout 7.2.3
2.3 编译Redis源码
使用如下命令编译Redis源码:
make MALLOC=jemalloc -j 4
编译命令最后输出如下:
可以看到,最后提示链接(LINK)的有三个可执行程序,分别为:
- redis-server Redis服务程序,用于提供服务;
- redis-benchmark Redis基准测试程序,用于进行性能测试;
- redis-cli Redis命令行程序,用于操作Redis服务中的数据;
2.4 安装Redis
使用如下命令将Redis可执行程序安装到系统目录:
sudo make install
命令输出如下:
可以看到,前面提到的三个可执行程序都安装了,安装目录为/usr/local/bin,可以用which redis-cli命令验证:
三、运行Redis基准测试
3.1 查看redis-server用法
初次使用之前,使用redis-server --help命令,可以查看redis-server命令行选项用法:
3.2 设置overcommit_memory选项
直接运行redis-server --check-system命令,检查Redis所需系统环境:
提示打开overcommit_memory选项,需要执行:
sysctl vm.overcommit_memory=1
或者将该配置写入到配置文件中,重启之后依然能够生效:
echo 'vm.overcommit_memory = 1' | sudo tee -a /etc/sysctl.conf
3.3 启动redis-server
使用redis目录下的配置文件,启动redis-server服务:
3.4 查看redis-benchmark用法
使用redis-benchmark --help命令,可以查看redis-benchmark命令行选项用法:
3.5 运行redis-benchmark基准测试
默认参数执行redis-benchmark,将会连接到本地主机的redis服务,并执行所有基准测试用例:
(-q选项进输出query/sec,不输出其他统计信息)
可以看到大部分命令的QPS(Query per second)能达到26000左右。
如果需要单独测试一个测试用例,则可以通过-t选项指定。
测试set命令100000次,使用命令:
redis-benchmark -t set -n 100000
输出结果为:
3.6 基准测试结果和树莓派4B对比
在树莓派4B开发板上,使用同样的操作,运行同样版本的redis-server和redis-benchmark,得到的测试结果如下:
可以看到,大部分QPS在16000,显著低于VisionFive2的26000左右。
四、本篇总结
Redis基准测试成绩主要取决于CPU、内存、缓存的综合性能,VisionFive2成绩高于树莓派4B,说明在CPU、内存、缓存综合性能方面VisionFive2并不比树莓派4B差。
五、参考链接
- Redis官网: https://redis.io/
- Redis源码仓: https://github.com/redis/redis/
- Redis码云镜像仓(国内下载速度较快): https://gitee.com/mirrors/redis
- 树莓派OS镜像下载页面: https://www.raspberrypi.com/software/operating-systems/
- 树莓派OS启动分区config.txt说明:https://www.raspberrypi.com/documentation/computers/config_txt.html
- 树莓派OS启动分区cmdline.txt说明: Raspberry Pi Documentation - Configuration