![](/img/trans.png)
[英]Connection timed out [tcp://127.0.0.1:6379] using redis on linux server
[英]Redis Error while writing bytes to the server. [tcp://127.0.0.1:6379]
我刚开始使用 redis 来缓存数据并运行查询。 我有两个函数,一个用于获取数据,另一个用于过滤缓存的数据。 这是我用于获取数据的 function 的外观:
if (Auth::user()->access_level == 'Admin' || Auth::user()->access_level == 'Donor') {
$clients_number = Cache::remember('all_clients_number', 21600, function () {
return ClientPerformance::whereNotNull('actual_clients')->get();
});
$all_clients_number = Cache::remember('all_clients_sum', 21600, function () use ($clients_number) {
return $clients_number->sum('actual_clients');
});
} else if(Auth::user()->access_level == 'Partner') {
$clients_number = Cache::remember('all_partner_clients_number', 21600, function () {
return ClientPerformance::whereNotNull('actual_clients')
->where('partner_id', Auth::user()->partner_id)
->get();
});
$all_clients_number = Cache::remember('all_partner_clients_sum', 21600, function () use ($clients_number) {
return $clients_number->sum('actual_clients');
});
}
我已经确认我的 redis 服务正在运行,并且我将 php.ini 文件中的最大 memory 限制更改为 4096。
这就是我的 function 过滤数据的样子:
$selected_counties = $request->counties;
if (Auth::user()->access_level == 'Admin' || Auth::user()->access_level == 'Donor') {
$all_clients_number = Cache::remember('all_clients_number', 21600, function () {
return ClientPerformance::whereNotNull('actual_clients');
});
} else if(Auth::user()->access_level == 'Partner') {
$all_clients_number = Cache::remember('all_partner_clients_number', 21600, function () {
return ClientPerformance::whereNotNull('actual_clients');
});
}
if (!empty($selected_counties)) {
$all_clients_number = $all_clients_number->where('county_id', $selected_counties);
}
$data["all_clients_number"] = $all_clients_number->sum('actual_clients');
像这样的Cache::remember(key)
从另一个 function 访问缓存数据是一种好习惯吗?这可能是为什么我无法向 redis 写入任何内容的原因,尽管事实上缓存的数据并不那么重。
任何建议或链接到我可以阅读如何有效访问缓存的 redit 数据的地方将不胜感激。 谢谢。
有一些解决方法可以解决这个问题:
CONFIG SET maxmemory 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.