项目-01-Redis单机情况分布式锁实现案例-测试


image-20210430130246755

  • **内容简介: ** 一次自以为是的性能测试.
  • PS: 若文章字体偏大或者偏小,建议通过 ctrl键+鼠标滑轮 进行修改,以提升阅读效果.(带来不便,请谅解!)

Version:

  • JDK : 1.8
  • Redis : 6.0.9

前提须知:

注意: 性能分析基于本地计算机情况, 不同计算机不可以一概而论.

本机状况:

  • OS : Windows 10 专业版
  • CPU: 15 4210m 2.6Ghz
  • 内存: 12G

项目部署情况:

虚拟机:

  • OS : CentOS 7 64 bit
  • 内存: 1.5G

Redis 以及Nginx 安装在本虚拟机中.

image-20210430130246755

Redis 性能测试:

CentOS 7:

本地调用 : **redis-benchmark -t set,get -c 50 **

set 方法测试结果:

image-20210430130929268

image-20210430131024872

Redis 每秒 大概可以处理2w5 个set请求.

get测试结果:

image-20210430131055324

image-20210430131119214

Redis每秒大概可以处理2w4 个get请求.

Windows 10 测试:

set测试结果:

测试命令

redis-benchmark -h 192.168.80.132 -t set,get  -c 50 -n 10000

image-20210430134726475

image-20210430134740846

由于受到网络IO等因素的影响,Redis 每秒可以处理2.2k条set请求

get测试结果:

测试命令

redis-benchmark -h 192.168.80.132 -t set,get  -c 50 -n 10000

image-20210430134806800

image-20210430134821038

由于受到网络IO等因素的影响, Redis 每秒可以处理2.2k条get请求

测试Synchronized 与ReentrantLock 的性能差距:

  • 前提: 保证线程请求成功.

100 个线程同时请求1次:

  • Synchronized: 73.8/sec

image-20210601175029775

  • ReentrantLock: 67.7/sec

image-20210601174910281

100个线程请求10次:

  • Synchronized: 244/sec | 280/sec|292/sec

image-20210601175754482

image-20210601180037969

  • ReentrantLock: 299/sec | 272/sec | 379/sec

image-20210601175830940

image-20210601175919879

100个线程请求100次:

  • Synchronized: 401/sec | 431/sec

image-20210601180510893

image-20210601180745188

  • ReentrantLock: 389/sec | 391/sec

image-20210601180331320

image-20210601180641111

总结:

参考: