最近測試、生產環境服務頻繁出現從redis連線池獲取不到連線或者連線數達到上線導致服務不能正常使用,設計上沒有處理redis異常導致redis故障或不可用不會從資料庫讀取資料影響服務可用性。
從以下兩方面解決該問題:
1、redis配置優化
原先redis配置如下,沒有做連線數限制
# 連線池最大連線數(使用負值表示沒有限制)
pool.max-active: -1
# 連線池最大阻塞等待時間(使用負值表示沒有限制)
pool.max-wait: -1
現在配置如下
# 連線超時時間(毫秒)當客戶端閒置多長時間後關閉連線,如果指定為0,表示關閉該功能
timeout: 根據實際設定值
# 連線池最大連線數(使用負值表示沒有限制)
pool.max-active: 根據實際設定值
# 連線池最大阻塞等待時間(使用負值表示沒有限制)
pool.max-wait: 根據實際設定值
# 連線池中的最大空閒連線
pool.max-idle: 根據實際設定值
# 連線池中的最小空閒連線
pool.min-idle: 0
2、程式中redis操作異常捕獲
之前程式中先redis再資料庫獲取資料,對於redis異常情況沒有捕獲,一旦redis故障或異常請求直接以丟擲異常結束。這部分程式需要優化即使redis不可用最終到資料庫去查詢資料。
參考redis連線的客戶端(connected_clients)數過高或者不減的問題解決方案
redis連線數合理配置 redis連線數配置多少
redis客戶端連線數 redis通過監聽乙個tcp埠或socket的方式接收來自客戶端的連線,當與客戶端建立連線後,redis內部會進行如下操作 1 客戶端socket會被設定為非阻塞模式,因為redis在網路時間處理上採用的是非阻塞多路復用模型 2 然後為這個socket設定tcp nodela...
登陸伺服器老出現「達到最大連線數 解決方法
近日,登陸伺服器老出現 達到最大連線數 提示 我的伺服器是win2003.此時,無法登陸伺服器了。解決方法有以下幾個 方法1 可以使用遠端桌面的命令列介面,任何時候都可以強行登陸進去 mstsc console v 214.55.6.2 3309 admin 重點在於引數 admin,這個引數可以保...
IIS 之 檢視併發連線數
一 執行 cmd 輸入 perfmon.msc 二 在 系統監視器 圖表區域裡點選右鍵,然後點 新增計數器 三 在 新增計數器 視窗,效能物件 選擇web service,從列表選擇計數器 選中current connection,從列表選擇例項 選中你要統計的站點,最後點選 新增 按鈕。四 設定完...