
一个 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)

如上图所示,第二次访问,响应时间明显缩短。


暂无评论
要发表评论,您必须先 登录