redis的資料是存在記憶體裡嗎?
首先要明白redis是一個資料庫,redis是一個記憶體資料庫,所有資料基本上都存在於記憶體當中,會定時以追加或快照的方式刷新到硬碟中。 (建議學習:Redis視訊教學)
由於redis是記憶體資料庫,所以讀取寫入的速度是非常快的,所以經常被用來做數據,頁面等的快取。
Redis最常使用的資料型別主要有以下:
##StringHash##List
Set
Sorted set
pub/sub
Transactions
首先Redis內部使用一個redisObject物件來表示所有的key和value,redisObject最主要的訊息如上所示:
type代表一個value物件具體是何種資料類型,encoding是不同資料類型在redis內部的儲存方式。
例如:type=string代表value儲存的是一個普通字串,那麼對應的encoding可以是raw或者是int,如果是int則代表實際redis內部是按數值類型存儲和表示這個字符字串的,當然前提是這個字串本身可以用數值表示,例如:"123" "456"這樣的字串。
這裡需要特殊說明一下vm字段,只有打開了Redis的虛擬內存功能,此字段才會真正的分配內存,該功能默認是關閉狀態的。
我們可以發現Redis使用redisObject來表示所有的key/value資料是比較浪費記憶體的,當然這些記憶體管理成本的付出主要也是為了給Redis不同資料型別提供一個統一的管理接口,實際作者也提供了多種方法幫助我們盡量節省記憶體使用。
更多Redis相關技術文章,請造訪
Redis入門教學以上是redis資料保存在哪裡的詳細內容。更多資訊請關注PHP中文網其他相關文章!