常見配置
守護進程模式啟動配置
1、daemonize介紹
A、redis.conf配置文件中daemonize守護線程,默認是NO。
B、daemonize是用來指定redis是否要用守護線程的方式啟動。
2、daemonize 設置yes或者no區別
daemonize:yes:redis采用的是單進程多線程的模式。當redis.conf中選項daemonize設置成yes時,代表開啟守護進程模式。在該模式下,redis會在后台運行,(即使在終端啟動后再斷開終端連接,也會切換到后台運行)並將進程pid號寫入至redis.conf選項pidfile設置的文件中,此時redis將一直運行,除非手動kill該進程。
daemonize:no: 當daemonize選項設置成no時,啟動redis后,redis 在當前終端顯示輸出,並運行,exit強制退出或者關閉連接工具(putty,xshell等)造成的當前終端斷開連接都會導致redis進程退出。
外網遠程訪問連接配置
redis 從3.2 之后加入的新特性,protected-mode,配置文件默認配置為yes,Protected-mode 是為了禁止公網訪問redis cache,加強redis安全的
為了能夠允許外網遠程連接,兩種配置方法:
1、#bind 127.0.0.1 注釋此行,不綁定本地ip 地址
requirepass asdf 在上述配置注釋的請況下,為了安全考慮,增加密碼認證 requirepass asdf
2、設置 protected-mode no
注意:如果不開通外網連接,則外網客戶端telnet redis 端口會拒絕連接,開通訪問即使設置密碼也能連接。
日志配置
logfile "" 默認配置為空,此時日志輸出為標准輸出也就是輸出在當前終端,當配置為damonize時,redis 為后台守護進程運行,此時日志輸出到/dev/null
最大連接數配置
maxclients 10000 設置同一時間最大客戶端連接數,默認無限制,Redis可以同時打開的客戶端連接數為Redis進程可以打開的最大文件描述符數,如果設置 maxclients 0,表示不作限制。當客戶端連接數到達限制時,Redis會關閉新的連接並向客戶端返回max number of clients reached錯誤信息
最大內存設置
maxmemory <bytes> 指定Redis最大內存限制,Redis在啟動時會把數據加載到內存中,達到最大內存后,Redis會先嘗試清除已到期或即將到期的Key,當此方法處理 后,仍然到達最大內存設置,將無法再進行寫入操作,但仍然可以進行讀取操作。Redis新的vm機制,會把Key存放內存,Value會存放在swap區
數據寫入設置
save <seconds> <changes> 指定在多長時間內,有多少次更新操作,就將數據同步到數據文件,可以多個條件配合
Redis默認配置文件中提供了三個條件: save 900 1 save 300 10 save 60 10000
appendonly no 指定是否在每次更新操作后進行日志記錄,Redis在默認情況下是異步的把數據寫入磁盤,如果不開啟,可能會在斷電時導致一段時間內的數據丟失。因為 redis本身同步數據文件是按上面save條件來同步的,所以有的數據會在一段時間內只存在於內存中。默認為no
當master服務設置了密碼保護時,slav服務連接master的密碼
masterauth <master-password>
常見操作
啟動
./redis-server 讀取默認配置文件
./redis-server ../redis-server.conf -p 1234 指定配置文件和端口
登錄驗證
設置Redis認證密碼后,客戶端登錄時需要使用-a
參數輸入認證密碼,不添加該參數雖然也可以登錄成功,但是沒有任何操作權限。如下:
$ ./redis-cli -h 127.0.0.1 -p 6379 127.0.0.1:6379> get foo (error) NOAUTH Authentication required.
使用密碼認證登錄,並驗證操作權限:
$ ./redis-cli -h 127.0.0.1 -p 6379 -a myPassword 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "myPass"
關閉服務
服務端:killall redis-server
客戶端:./redis-cli -h ip -p 6379 shutdown