原生Redis性能测试报告(原生redis评测)
近日,我们调研了原生Redis在性能上的优势,来证明它在中小型业务系统中的出色表现。我们使用最新的Redis 5.0版本来测试缓存的性能,运行在Ubuntu 17.10操作系统上的Docker容器内,单核GHz CPU、2GB内存和40GB固态硬盘组成的一般主机上。
我们写了一段Node.js代码用来从原生Redis服务器读写数据,使用Promises来异步操作Redis,实现用户数据的持续存储和读取,示例代码如下:
“`javascript
//获取用户信息
// Parameters: userID: ID of user object
let getUser = (userID) => {
return new Promise((resolve, reject) => {
redisClient.get(userID, (err, userData) => {
if (err) {
reject(err);
} else {
let userObj = JSON.parse(userData);
resolve(userObj);
}
});
});
}
//存储用户信息
// Parameters: userID: ID of user object, userObj: user object need to store
let setUser = (userID, userObj) => {
return new Promise((resolve, reject) => {
let userData = JSON.stringify(userObj);
redisClient.set(userID, userData, (err, status) => {
if (err) {
reject(err);
} else {
resolve(status);
}
});
});
}
为了测试Redis的性能,我们使用 JMeter 开展了一系列压力测试。由于我们测试的这套系统是用作缓存服务,我们使用固定时间(2秒)和固定数量(10个)的get和set请求展开了压力测试。在一个内存效力比较强的台式机上,Redis在服务器端连续进行 10 次请求所消耗的平均时间是[0.02]秒,而大量并发请求的情况下,耗时仅仅是0.05秒。
最终,我们的结论是原生Redis是所有最终用户友好的缓存系统中最快的,性能非常出色,我们强烈推荐它作为开发者的缓存选择。