我有一個疑問,如果在共享主機環境中使用大量數據緩存和會話變量是不好的做法?通過共享主機我的意思是託管在服務器上的內存少和所有。因爲當緩存足夠大時會發生什麼情況,從而導致內存泄露?在共享主機服務器中使用數據緩存和會話變量
拉夫
我有一個疑問,如果在共享主機環境中使用大量數據緩存和會話變量是不好的做法?通過共享主機我的意思是託管在服務器上的內存少和所有。因爲當緩存足夠大時會發生什麼情況,從而導致內存泄露?在共享主機服務器中使用數據緩存和會話變量
拉夫
這將取決於你的託管應用程序到服務器配置中非常多。首先要做的是,不要擔心因爲共享主機而丟失了你的記憶。在內存使用量增長超過預定義閾值之前,您的提供商將會關閉您的應用程序。
關於會議,有幾件事情需要考慮。會話狀態模式和應用程序運行的節點數量。例如,如果您正在使用默認的內存中會話狀態並在多個服務器上運行應用程序(webfarm),則每個節點都將在內存中擁有自己的會話數據。這很危險,因爲我們假設用戶在節點A上執行其第一個請求,並且一些數據存儲在會話中,第二個請求由節點B服務。現在,由於會話存儲在節點A的內存中,因此第二個請求將失敗因爲它無法找到會話數據。在這種情況下,您應該考慮使用進程外會話存儲模式。
就緩存而言,如果您想對其進行優化,建議使用專用緩存服務器,而不要將其存儲在Web服務器的內存中。
感謝您的輸入@darin。它確實有幫助。 – gaurav
如果你投下了一些東西,請提供一些理由來做到這一點,以便在將來詢問時能夠記住這一點。謝謝 – gaurav
如果內存不足,緩存大量數據是絕對不好的主意。這與你所問的一樣,嘗試用2L水填充1L瓶是個好主意。 – Reniuz
RAM多少,同時會話多少,每個會話多少個數據。你能堅持15分鐘以上的會話嗎? – edze