1. 程式人生 > >Redis物理文件結構

Redis物理文件結構

ike lob port targe red tab nan inf val

Redis物理文件結構

對於數據庫,個人習慣先從物理結構文件入手,整體上看一下有哪些文件,都是什麽作用。
類似於MySQL,數據文件和配置文件是Redis最基本也是做主要的兩個物理文件之一,相比MySQL或者其他數據庫,Redis的相關的物理文件相當的簡單。
與MySQL眼花繚亂的各種數據文件,日誌文件等等不同,默認情況除了配置文件redis.conf(當然配置文件可以隨意指定位置),只有一個數據文件dump.rdb
甚至連日誌文件都沒有,如下的日誌文件是自己通過配置指定的,整個文件結構非常幹凈清爽。

技術分享圖片

Redis的數據文件

Redis實例默認有16個數據庫,Redis中的數據庫是一個邏輯上的概念,其數據庫物理文件不像其他的數據,每個數據庫分別對應一組物理文件(數據文件,日誌問題等等),

Redis所有的數據庫對應著同一個物理文件,也即數據庫文件,默認名稱為dump.rdb。
Redis默認數據庫的個數為16,但是對應同一個物理文件dump.rdb

技術分享圖片

Redis下切換數據庫
./bin/redis-cli -h 127.0.0.1 登陸之後默認是數據庫0
select n可以切換數據庫

技術分享圖片

Redis的“數據庫”僅僅是一個邏輯上的概念,更多關於Redis中數據庫的概念,請參考:http://blog.kankanan.com/article/52ff7528-redis-7684591a5e93.html

Redis配置文件

類似於MySQL的配置信息my.cnf,Redis也有類似的配置文件和配置信息,比如端口號,是數據文件路徑等等

對於配置選項的查詢,類似於MySQL中的global_variables或者show variables命令一樣(select * from performance_schema.global_variables;show variables like ‘%innodb_autoinc_lock_mode%‘;)
redis可以通過config get configkey 來獲取某一個配置項的配置信息,config get 查詢不存在的配置項的時候返回空。

技術分享圖片

config get * 獲取所有的配置選項,config get 出來的結果格式並非類似於關系數據庫中的key:value的格式,
而是key一行,value一行,因此config get出來的結果必然是偶數行

技術分享圖片

配置文件參數的修改

1,類似於MySQL修改配置文件,直接修改配置文件後重啟Redis服務
2,使用config set 修改參數

使用config set設置參數存在的問題:

1,config set 並不能修改所有的參數,有些參數是不支持config set 修改的
比如loglevel是可以通過config set 修改的,而databases參數就不可以通過config set修改,對於不支持的config set的選項,會提示:ERR Unsupported CONFIG parameter:

技術分享圖片

2,config set修改後的參數,並不能持久化,也就是說redis服務重啟之後,config set 修改的參數依舊會按照配置文件中的來

技術分享圖片

因此,在Redis中,對於配置信息的修改,建議之一修改配置文件,而不是通過config set 來修改。

相關參考:
勿用Redis多庫:http://blog.kankanan.com/article/52ff7528-redis-7684591a5e93.html
redis配置文件詳解:https://www.cnblogs.com/AlanLee/p/7053577.html

Redis物理文件結構