剛接觸redis不久,看了網上的一些資料有很多地方還沒有搞明白,現在有兩個問題有點疑惑,希望大家能協助解答一下。
1.關於Redis多串連的問題。
(1)多串連是指:不同項目之間與Redis建立的串連? 還是 同一個項目可以與Redis建立多個連
接?
(2)在一個項目中需要儲存 使用者資訊、裝置資訊。 那麼用不用建立2個串連,一個用來儲存使用者資訊,一個用來儲存裝置資訊,還是只建立一個串連即可? 哪一種方式好呢? 現在我是只建立一個串連,儲存所有的資料。
2.關於Redis合適關閉的問題。
情境:Server與Client建立Socket長串連,Server收到Client的資料,先儲存到Redis裡面,最後在儲存到MySQL。
問題:
(1)那麼問題來了,我是每次往Redis裡面存資料都重新開啟,操作完後再關閉。還是一直開著就行,長時間的一直串連,不用關閉,只在程式異常或者退出時再關閉? 個人認為應該是一直保持著串連吧,因為要頻繁的IO,所以頻繁的串連、關閉不適合。
(2)合理的方式應該是何時關閉Redis串連呢?
回複內容:
剛接觸redis不久,看了網上的一些資料有很多地方還沒有搞明白,現在有兩個問題有點疑惑,希望大家能協助解答一下。
1.關於Redis多串連的問題。
(1)多串連是指:不同項目之間與Redis建立的串連? 還是 同一個項目可以與Redis建立多個連
接?
(2)在一個項目中需要儲存 使用者資訊、裝置資訊。 那麼用不用建立2個串連,一個用來儲存使用者資訊,一個用來儲存裝置資訊,還是只建立一個串連即可? 哪一種方式好呢? 現在我是只建立一個串連,儲存所有的資料。
2.關於Redis合適關閉的問題。
情境:Server與Client建立Socket長串連,Server收到Client的資料,先儲存到Redis裡面,最後在儲存到MySQL。
問題:
(1)那麼問題來了,我是每次往Redis裡面存資料都重新開啟,操作完後再關閉。還是一直開著就行,長時間的一直串連,不用關閉,只在程式異常或者退出時再關閉? 個人認為應該是一直保持著串連吧,因為要頻繁的IO,所以頻繁的串連、關閉不適合。
(2)合理的方式應該是何時關閉Redis串連呢?
我看你還有一個標籤是PHP,不知道你是不是在PHP下使用Redis的,如果是,我想上面的問題都不應該是你該考慮的問題,應該Redis擴充已經幫你設定好了最佳的解決方案。
逐個解決你說的問題:
多連結不是你提的兩種情況,而是指一個項目與一個Redis建立多個連結,應該伺服器大多是並發處理的,如果只開一個連結就會形成多個請求排隊等待連結的情況,所以目前都會才有多連結(串連池)的設計。
不要把每個連結綁定到實際需求中,這種算耦合。並且現在Redis庫設計時絕大多數都實現了串連池,你在使用時連結對你來說已經算是不可見的,你就沒必要再操這份心做幹下層驅動所乾的事情了。
正如你說的,最佳的方式是一直保持連結,也就是常說的長連結,而塊驅動也已經幫你寫好了,你所使用的預設就是長連結,所以並不需要再去處理何時關閉串連的問題了。