![](/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.