有提過一個問題/q/1010000004340655?_ea=575030,回答的少沒太能明白。 我重新描述下,有的朋友說內存滿了,舊數據會刪除,硬碟上的也自動沒了,如果這樣的邏輯來說,他並不是持久化啊?例如:你有一個KEY,開始的時候也同步到硬碟了,但是後期有更多資料內存滿後REDIS自動把這個KEY刪除了,哪麼下次你GET這個KEY的時候,他會取硬碟讀嗎? (持久化方式是AOF)
如果設定了記憶體回收機制,的確會在記憶體滿了以後刪除舊數據,這樣再持久化時,磁碟裡的持久化的對應資料也會刪除。但持久化只是指把資料從記憶體寫入磁碟而已,舉個例子來說,資料存入MySQL我們也會稱之為持久化,但你刪除資料庫裡一條資料後,資料庫裡也會少一筆記錄。 另外Redis持久化應該不提供查詢功能,也就是說不存在說內存查不到,去查磁碟這一說。持久化的資料會同步到記憶體中,如果記憶體中不存在,磁碟中理論上也應該不存在。 你原貼我有回答的,裡面附的鏈接,你進去仔細看看應該就能明白了。
如果設定了記憶體回收機制,的確會在記憶體滿了以後刪除舊數據,這樣再持久化時,磁碟裡的持久化的對應資料也會刪除。但持久化只是指把資料從記憶體寫入磁碟而已,舉個例子來說,資料存入MySQL我們也會稱之為持久化,但你刪除資料庫裡一條資料後,資料庫裡也會少一筆記錄。
另外Redis持久化應該不提供查詢功能,也就是說不存在說內存查不到,去查磁碟這一說。持久化的資料會同步到記憶體中,如果記憶體中不存在,磁碟中理論上也應該不存在。
你原貼我有回答的,裡面附的鏈接,你進去仔細看看應該就能明白了。