我正在使用Yii PHP框架構建一個論壇網站。我也使用Memcached進行會話維護和存儲一些數據對象。Yii會話變量和Memcached
對於每一個用戶請求我一定要得到一些用戶信息,檢查一些事情(來檢查他是否是特定組的成員或不和也等檢查)
那麼我刨了兩種方法
1)不要在會話中存儲任何東西,除了用戶標識,並建立用戶會話後,從memcached中獲取對象並檢查它 - 這裏有一個用戶對象和兩個對memcached服務器的調用 (一個是會話調用等獲取用戶對象)
2)店鋪所有需要會話中的用戶信息使用setState方法。成功登錄後,用戶從會話對象獲取信息並進行檢查。這裏memcached中有兩個用戶對象,用戶會話中有一個用戶對象(當然這再次存儲在memcached中)。但我覺得,當會話使用一個呼叫建立,我們得到了用戶所需的全部細節(真的是這樣的話?)
不知道什麼是最好的辦法。感謝您的幫助。
謝謝麥克你的迴應。我想我忘記提及任何我將用戶對象存儲在memcached中的其他原因(與其他用戶比較,比如他們是朋友還是他們在同一組中)。但是正如你所說的,它看起來好像存儲會話對象,儘管對象是重複的。我測試了幾個用戶,我在服務器中看到會話對象存儲,並且不需要memcached再次獲取信息。如果我不存儲會話,它會調用memcached太多。當然,正如你所說,它不會帶來任何性能差異。 – Bujji