一个 Laravel 框架的网站,启用 Memcached 缓存,但网站响应时间依然较长。经测试,如搜索词是英文,响应时间明显减少,如果 Memcached 缓存键包含中文,响应时间较长,估计是缓存失败。
记录缓存日志
开启 log 模式
在缓存读取、保存等步骤加上日志记录,查看日志后确认,当 kay 为中文时,缓存内容为空。
//缓存存储前 Log::info('缓存: ' . $search_key); Cache::put($search_key, $_data, 30);
查看缓存日志
[2023-09-27 23:23:34] production.INFO: 缓存: search:keyword:视频 [2023-09-27 23:24:12] production.INFO: 查询: search:keyword:视频 [2023-09-27 23:24:12] production.INFO: 缓存内容: HTTP/1.0 200 OK Cache-Control: no-cache, private Content-Type: application/json Date: Wed, 27 Sep 2023 15:24:12 GMT {"success":true,"data":null}
"data":null
未缓存内容。
解决办法
使用md5函数处理kay,如:
$search_key = md5($search_key); return Cache::remember($search_key, 60, function () use ($search_key)
如上图所示,第二次访问,响应时间明显缩短。
暂无评论
要发表评论,您必须先 登录