亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

redis資源釋放問題

redis資源釋放問題

BIG陽 2018-07-26 17:17:50
代碼中需要用到redis,但是總會由于各種異常導致redis資源無法釋放,導致獲取不到資源。代碼邏輯如下,求大神優化:{聲明redis;獲取redis;執行sql邏輯代碼1;執行邏輯代碼2;釋放redis;}結果異常往往出現在執行sql查詢,導致redis不能釋放,所以改進版(1)如下:聲明redis;try{獲取redis;執行sql邏輯代碼1;執行邏輯代碼2;}catch(){}finally{釋放redis;}但是這樣,發現把所有的業務邏輯都包在了try-catch中,求大神幫忙改進怎樣釋放redi最好改進方法(2)如下:{聲明redis;redis包裝類進行查詢刪除操作1(在redis包裝類每次操作后進行try-catch-finally釋放);執行sql邏輯代碼1;redis包裝類進行查詢刪除操作2(在redis包裝類每次操作后進行try-catch-finally釋放);執行邏輯代碼2;}
查看完整描述

2 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

建議:
1.可以考慮用 連接池 ,減少頻繁連接和釋放。
2.采用 長連接,復用同一個連接。

查看完整回答
反對 回復 2018-07-30
?
弒天下

TA貢獻1818條經驗 獲得超8個贊

個人覺得你的問題不在于連接不釋放,而在于連接持有時間過長,在處理SQL期間,連接持有是沒有意義的,所以可以改為:

1. 持有Redis連接,執行前置邏輯(如果有的話),釋放連接2. 執行SQL邏輯(可能耗時較久)3. 再次持有連接,執行后置邏輯(如果有的話),釋放連接

在有連接池的條件下,連接的開銷會很小,所以不必要長時間占用連接


查看完整回答
反對 回復 2018-07-30
  • 2 回答
  • 0 關注
  • 1964 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號