redis 性能测试(redis性能测试工具可选参数)

来源网友投稿 747 2023-02-17

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。
本篇文章给大家谈谈redis 性能测试,以及redis性能测试工具可选参数对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享redis 性能测试的知识,其中也会对redis性能测试工具可选参数进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Jmeter接口测试-redis测试客户端连接数问题

1、jmeter脚本redis 性能测试,请求redis key连接数达到一定数量时redis 性能测试,请求报500,无法正常请求成功

报错内容大致如下:

看报错内容,并看不出来具体问题在哪
2、查看redis客户端连接数

性能redis(6380):0info clients
"# Clients
connected_clients:1970 #当前连接数
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
"
性能redis(6380):0CONFIG GET maxclients

当客户端连接数超过10000时,请求被限制redis 性能测试了,所以脚本请求报500,无法请求成功,当连接数消费完下降时,又能正常请求成功

Redis 性能评估及一台 Redis 承受不住并发量怎么办

1.评估光用 benchmark 不可靠,得具体根据你的业务使用场景,如使用 string 还是 list ,或者是 zset , list 和 zset 长度不同有些操作的单次耗时是不同的,你得预估你的数据量,然后自己写测试代码,这样最靠谱
2.一个 redis 撑不住可以用多个,具体两种策略,一个是客户端路由,一个是服务端加代理层,由服务端路由,如 codis
3.redis 内部是单线程的,所以不会有并发问题,即使你业务代码是并发的,但是到 redis 那里,你可以理解成一个队列,先到先做,顺序执行
PS:redis 最该考虑的我觉得还是容量问题,毕竟内存资源还是比较宝贵的

Redis哨兵模式(故障转移测试)

哨兵模式是在主备模式的基础上,加上哨兵,实现redis集群的故障转移。哨兵负责监控集群状态,当redis主节点发生故障,哨兵通过选举,选出替代的master节点。一般需要单数的哨兵进行选举,大多数达成一致。

问题:如果哨兵集群也有部分实例down了,出现偶数哨兵,或者只剩下一个哨兵会如何,还能进行故障转移吗。

为什么会出现这个问题:哨兵其实也是redis实例,一般情况下,哨兵是为了保证redis集群的故障转移。由于资源,以及网络通信的性能考虑,一般哨兵和redis会部署在同一物理机。如果一台物理机出现了物理故障,哨兵实例和redis服务实例会一起down掉。

本文章针对这个问题做一下实验。

使用3+3模式,3redis+3sentinel。

三台虚拟机,每台虚拟机运行1个redis+1个sentinel

ip、角色规划

    192.168.237.101:master,sentinel

    192.168.237.100:slave,sentinel

    192.168.237.103:slave,sentinel

安装redis、redis sentinel

    apt-get install redis-server

    apt-get install redis-sentinel

redis-server配置修改(/etc/redis/redis.conf)

   
redis-server slave配置修改

启动redis-server

    /etc/init.d/redis-server restart

查看redis-server主从集群情况
修改sentinel配置(/etc/redis/sentinel.conf)

    sentinel monitor mymaster 192.168.237.101 6379 2

    sentinel known-slave mymaster 192.168.237.100 6379

    protected-mode no

启动sentinel

    /etc/init.d/redis-sentinel start

查看redis-sentinel情况

   
预期:故障转移,哨兵选举出新的master

关掉redis-server(192.168.237.101)
查看sentinel日志(/var/log/redis/redis-sentinel.log)

可以看到,+odown master,哨兵检测master客观下线

然后进行投票:vote-for-leader

选出新的master:switch-master mymaster 192.168.237.101 6379 192.168.237.103 6379

192.168.237.101的sentinel日志:
查看redis和sentinel集群状态,确认master变成了192.168.237.103(master host)
恢复192.168.237.101的redis-server,查看日志,192.168.237.101转换成slave
预期:有两个sentinel,可能会出现,剩下两个slave各得一票的情况,按照哨兵原理,会等待一段时间进行再选举,直到某个slave有两票,完成故障转移。

经过3.1实验,master转换到了192.168.237.103,现在先后关掉103上的sentinel和redis-server

查看两台sentinel的redis-sentinel日志,可以选出master,进行故障转移:
查看redis集群状态,确认master(192.168.237.100)
预期:无法切换

依次关掉两个sentinel,一个redis-server master。3.2节master转移到了100,恢复环境后,依次关掉103,100的sentinel,100的redis-server master
查看101上的sentinel日志,由于只有一个sentinel,只有101上的sentinel投票
恢复一个redis-sentinel,现有两个redis-sentinel

查看sentinel日志,选出101为master

      有两个sentinel或以上可以进行故障切换。单数sentinel更容易选出master,进行故障转移。

+sdown:主观down机

+odown:客观down机

+new-epoch:集群递增版本号

+vote-for-leader:在哨兵集群中投票选举出一个哨兵,作为本次执行故障转移操作的leader

+try-failover:开始对某ip进行故障转移

voted for:另一个哨兵进行投票

+elected-leader:在哨兵集群中再次确认进行即将执行故障转移的leader是哪一个哨兵。 

+selected-slave slave:选出leader

 +failover-state-send-slaveof-noone slaveLeader:向目标slave发送"slaveof-noone"指令,令其不要再做其它任何节点的slave了,从现在开始,它就是老大,完成从slave到master的转换。

+failover-state-wait-promotion slave:等待其它的sentinel确认slave

+promoted-slave slave:其它的sentinel全部确认成功

+failover-state-reconf-slaves:开始对集群中的所有slave做reconf操作(更新配置信息)

+slave-reconf-sent:向指定的slave发送"slaveof"指令,令其跟随新的master

+switch-master:故障转移完毕后,各个sentinel开始监控新的master

关于Redis批量写入的介绍

最近测试redis性能redis 性能测试,需要批量插入1千万条以上redis 性能测试的数据,

就简单进行了研究,大概有以下几种方法redis 性能测试

一:java程序调用,简单的for循环,通过Jedis的方法,直接插入,

       至于速度,不用看,不用试,根本不行,就不给实现了。

二:通过shell脚本,也比较简单,但也是因为要通过port端口的形式,

       连接到redis,速度也是慢的不行,放弃。

三:通过redis提供管道,感觉这种方法是最靠谱的,一下是实现:

 步骤1:首先简单写一个shell脚本:

目的是生成一个用批量插入的脚本文件,

步骤2:这里linux或者windows上生成的文件不能直接当做redis语句来跑,

简单来说,就是因为linux,windows和dos的换行并不一样,

所以需要简单转换一下:

转换的方法有好多种:

1:一般Linux发行版中都带有这个小工具,只能把DOS转换为UNIX文件,命令如下:

上面的命令会去掉行尾的^M符号。(如果机器上没有安装nuix2dos,直接用方法2即可)

2:用vim,vim是vi的改进版本,使用方式:

一行命令即可,保存退出,

步骤3:就是跑脚本了,通过redis提供的管道--pipe形式,

三步即可,完成redis的批量插入,速度,在2000万条的情况下,生成脚本的速度稍慢,插入的速度还在几分钟,

速度可以说是非常快了~

本文来自PHP中文网的 redis教程 ​栏目: https://www.php.cn/redis/ 关于redis 性能测试和redis性能测试工具可选参数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 redis 性能测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于redis性能测试工具可选参数、redis 性能测试的信息别忘了在本站进行查找喔。
上一篇:运维 事件处理是啥(运维 事件处理是啥岗位)
下一篇:it运维价格(系统运维报价)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~