2016-10-03 37 views
2

我有一個非常長的對象列表,我只想從db加載一次到內存(對於每個會話都不意味着),這個列表將會改變它的值並隨時間增長通過用戶輸入,我在內存中需要它的原因是因爲我正在做一些複雜的搜索,並希望快速回復。在Django中使用全局靜態變量服務器

我的問題是我如何在服務器的啓動時加載一個列表,並通過會話讓它們全部讀/寫。

做一個沉重的SQL搜索,而不是通過我的服務器保持列表活躍會更好嗎?

回答

1

答案是,這是個壞主意,因爲您還需要寫入權限,所以您特別打開潘多拉的盒子。然而,一切都不會丟失。您可以非常輕鬆地使用redis來執行此任務。

Redis是一個永久的數據存儲,但同時一切都保存在內存中。如果redis服務器運行在與web服務器相同的設備上,幾乎是瞬間訪問

+0

Redis確實看起來像是一個解決方案,但是您是否知道任何其他類似單線程的庫**不**仍然存在數據?我已經通過django模型持久保存數據(並且與其他模型有複雜關係) –

+0

請求資源是堆棧溢出的主題,所以我無法回答該評論 – e4c5