Carry の Blog Carry の Blog
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • Python
  • Shell
  • MySQL8-SOP手册
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carry の Blog

好记性不如烂键盘
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • Python
  • Shell
  • MySQL8-SOP手册
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • MySQL

  • Redis

    • 安装配置
    • Redis 集群部署
    • redis大key分析
    • Redis手动进行主从切换
    • Redis集群添加节点之后数据重新均匀分配
    • Redis槽位slot解读
    • redis新增节点slot迁移报错故障修复
    • Redis集群的创建、剔除节点与新增节点操作过程
    • redis抓包分析脚本
    • Redis配置文件解读
    • redis cluster压测
    • redis慢查询告警脚本
    • Redis 的可用内存过高时的自动驱逐 key 策略详解
  • Keydb

  • TiDB

  • MongoDB

  • Elasticsearch

  • Kafka

  • victoriametrics

  • BigData

  • Sqlserver

  • 数据库
  • Redis
Carry の Blog
2022-10-15

redis cluster压测

#!/bin/bash
#LIENTS=50              #defaul clients
HOST='10.31.177.233'
PORT=7001
PWD='xxxxxxxxxxxxxx'  # if have passwod
end_clients=2000
CMDS="set"
THREADS=4                 #mutil threads
cmd_arry=(set get incr sadd mset mget hset)  #ad hoc test redis command
KEYSPACE=100000
TOTAL_REQUESTS=500000    #default 100000
data_size=100            #Data size of SET/GET value in bytes (default 3)
CURRENT_DATE=`date +%Y%m%d`
bench_file='redis-benchmark'-${CURRENT_DATE}
benchmark='/usr/local/redis/bin/redis-benchmark'

echo "commond,clients,datasize,tps"
benchmark(){
    cmd=$1
    for clients in `seq 50 50 $end_clients`;do
        if [ x"$pipeline" != "x" ];then
           with_pipeline="-P $pipeline"
        fi
        benchmark_cmd="$benchmark -h $HOST -a $PWD  -p $PORT --cluster --threads $THREADS -c $clients  $with_pipeline -r $KEYSPACE -n $TOTAL_REQUESTS -t $cmd -d $data_size"
        echo "[info] `date +"%Y-%m-%d %H:%M:%S"` : $benchmark_cmd ">>benchmark_cmd.log
        tps=`$benchmark_cmd | grep "requests per second" | awk '{print $3}'`
        echo "$cmd,$clients,$data_size,$tps" | tee -a ${bench_file}_${cmd}.txt
    done
}

for cmdelement in ${cmd_arry[@]};do
    echo $cmdelement
    benchmark $cmdelement #don't use pipline 
done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
上次更新: 4/24/2025

← Redis配置文件解读 redis慢查询告警脚本→

最近更新
01
tidb fast ddl
04-04
02
TiDB配置文件调优 原创
04-03
03
如何移除TiDB中的表分区 原创
04-03
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式