目录
在同一虚拟内网中创建云主机、Redis数据库实例各一个,运行状态正常
1、安装工具
1.1、下载测试工具
wget http://download.redis.io/releases/redis-5.0.12.tar.gz
1.2、解压
tar -xvf redis-5.0.12.tar.gz
1.3、安装gcc
yum -y install gcc gcc-c++
cd redis-5.0.12
make
make install
2、开始测试
2.1 SET、GET等操作平均每秒请求数
redis-benchmark -h 10.173.150.201 -p 30098 -n 1000000
2.1.1 shell脚本运行
#/bin/bash
sudo rm -r ~/results/*
cd ~
for a in {1..30}
do
redis-benchmark -h r-uf6qmv8md6gr7mh9hw.redis.rds.aliyuncs.com -p 6379 -n 1000000 --csv >> ./results/results.csv
sleep 1
done
2.2 验证数据完整性
1)在数据库中存入10000 对KEY-VALUE
2)在云主机中部署测试脚本,每隔5分钟获取存入的KEY-VALUE,与原数据对比,判断是否一致
1、用python造一万条数据
2、插入一万条数据:cat redis_insert.txt | redis-cli -h host -p port -a password --pipe
3、在云服务器运行写好的脚本:sh select_redis.sh(不可关闭运行脚本的窗口)
4、写好的脚本(select_redis.sh):先查询所有的key值,存到key_db.txt,在filename.csv,写入表头"key,value",再把key_db.txt里的"key,value"查询出来,存到filename.csv。
2.2.1 造数据脚本存入redis_insert.txt参考链接
1> 首先构造redis命令的文本文件
在这里,我选用了python
#!/usr/bin/python
for i in range(10000):
print('set name'+str(i)+' helloworld')
# python 1.py > redis_commands.txt
# head -2 redis_commands.txt
set name0 helloworld
set name1 helloworld
2> 将这些命令转化成Redis Protocol
在这里,我利用了github上一个shell脚本,
#!/bin/bash
while read CMD; do
# each command begins with *{number arguments in command}\r\n
XS=($CMD); printf "*${#XS[@]}\r\n"
# for each argument, we append ${length}\r\n{argument}\r\n
for X in $CMD; do printf "\$${#X}\r\n$X\r\n"; done
done < redis_commands.txt
# sh 20.sh > redis_data.txt
# head -7 redis_data.txt
*3
$3
set
$5
name0
$10
helloworld
至此,数据构造完毕。
2.2.2 插入数据库
cat redis_insert.txt | redis-cli -h host -p port -a password --pipe
2.2.3 写成shell脚本select_redis.sh
#!/bin/bash
for((i=1;i<290;i++));
do
filename='redis'`date +%Y-%m-%d_%H:%M`
work_path=$(dirname "$0")
echo "实例化redis数据文件为:$work_path/select_results/$filename"
echo "keys *" | redis-cli -h 10.173.150.201 -p 30098 -a Gmcc@1234 > key_db.txt
echo "将所有key保存到:$work_path/key_db.txt"
echo "key,value" >>$work_path/select_results/$filename.csv
for line in `cat key_db.txt`
do
echo "$line,`redis-cli -h 10.173.150.201 -p 30098 -a Gmcc@1234 get $line`">>$work_path/select_results/$filename.csv
done
sleep 5m
done
逻辑:先查询所有的key值,存到key_db.txt,在filename.csv,写入表头"key,value",再把key_db.txt里的"key,value"查询出来,存到filename.csv
2.2.4运行shell脚本
sh select_redis.sh