Redis物理文件結構 對於資料庫,個人習慣先從物理結構文件入手,整體上看一下有哪些文件,都是什麼作用。類似於MySQL,數據文件和配置文件是Redis最基本也是做主要的兩個物理文件之一,相比MySQL或者其他資料庫,Redis的相關的物理文件相當的簡單。與MySQL眼花繚亂的各種數據文件,日誌文件 ...
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的數據文件並不是與數據實時同步的,在預設的配置下以及說明如下
# save 900 1 900秒內至少有1個key被改變
# save 300 10 300秒內至少有300個key被改變
# save 60 10000 60秒內至少有10000個key被改變
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