thinkphp5.0+redis(请求缓存)与thinkphp5.0+htmlcache谁更抗并发
在多数技术人员当中,会有不少人认为:redis内存缓存,速度当然快,当然搞并发。真的吗?来测试一下。
注: 两都都连接数据库,均为首页。在测试时,均清理已经存在的缓存。
1、thinkphp5.0+redis(请求缓存),使用时,开启配置request_cache参数:
![16580463461658046346_2429.png blob.png](data/attachment/forum/202302/28/deb0d170640e98ef8250ce7458396235.png)
![16580464031658046403_6134.png blob.png](data/attachment/forum/202302/28/4001ef5c375156a7cb50bbb1b8e2ef52.png)
2、request_cache设置为false,html_cache_on设置为true(此配置为扩展ReadHtmlCacheBehavior.php)
![16580467441658046744_2921.png blob.png](data/attachment/forum/202302/28/b6d09ccf78e9f036d04016c5868682b3.png)
![16580467741658046774_818.png blob.png](data/attachment/forum/202302/28/877eb806efc926168d6b1dd7796aa31a.png)
经过多次测试,请求缓存在并发时,总会有几个请求失败的情况(1-24个失败请求,应该有点类似缓存击穿,毕竟没有缓存,直接并发);但htmlcache却在并发中表现的稳稳的,没有一次请求失败,全部成功。
可以对比下其它参数,如rps之类的,会发现htmlcache缓存值偏小些,也就是响应的速度会慢些,毕竟硬盘存取速度相对内存存取速度会慢好多。
注:thinkphp5.0的请求缓存、路由缓存都会在高并发中出现请求失败的情况。
|