redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value類型相對較多,包括string(字串)、list(鍊錶)、set(集合)、zset(sorted set --有序集合)和hash(雜湊類型)。 (建議學習:Redis影片教學)
這些資料型別都支援push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。
在此基礎上,redis支援各種不同方式的排序。與memcached一樣,為了確保效率,資料都是快取在記憶體中。
Redis(全名為:Remote Dictionary Server 遠端字典服務)是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。
儲存
redis使用了兩種檔案格式:全量資料和增量請求。
全量資料格式是把記憶體中的資料寫入磁碟,以便下次讀取檔案載入;
增量請求檔則是把記憶體中的資料序列化為操作請求,用於讀取檔案進行replay得到數據,序列化的操作包括SET、RPUSH、SADD、ZADD。
redis的儲存分為記憶體儲存、磁碟儲存和log檔案三部分,設定檔中有三個參數對其進行設定。
save seconds updates,save配置,指出在多長時間內,有多少次更新操作,就將資料同步到資料檔案。 這個可以多個條件配合,例如預設設定檔中的設置,就設定了三個條件。
appendonly yes/no ,appendonly配置,指出是否在每次更新操作後進行日誌記錄,如果不開啟,可能會在斷電時導致一段時間內的資料遺失。因為redis本身同步資料檔是依照上面的save條件來同步的,所以有的資料會在一段時間內只存在於記憶體中。
appendfsync no/always/everysec ,appendfsync配置,no表示等作業系統進行資料快取同步到磁碟,always表示每次更新作業後手動呼叫fsync()將資料寫入磁碟,everysec表示每秒同步一次。
更多Redis相關技術文章,請造訪Redis入門教學欄位學習!
以上是redis將資料儲存在哪裡的詳細內容。更多資訊請關注PHP中文網其他相關文章!