<input id="ohw05"></input>
  • <table id="ohw05"><menu id="ohw05"></menu></table>
  • <var id="ohw05"></var>
  • <code id="ohw05"><cite id="ohw05"></cite></code>
    <label id="ohw05"></label>
    <var id="ohw05"></var>
  • 【Redis 系列】redis 學習七,那些你不知道的 redis 配置文件詳解

    Redis 配置文件詳解

    單位

    redis 啟動的時候會去讀配置文件 redis.conf

    1k => 1000 bytes
    1kb => 1024 bytes
    1m => 1000000 bytes
    1mb => 1024*1024 bytes
    1g => 1000000000 bytes
    1gb => 1024*1024*1024 bytes
    

    redis 里面單位是不分大小寫的,例如,1GB 1Gb 1gB 表示的都是同一個意思

    INCLUDES 包含

    環境中使用的 redis.conf 可以包含其他的 redis.conf,他們會整合成一個 配置文件來提供使用

    NETWORK 網絡

    bind 0.0.0.0 
    
    protected-mode yes
    
    port 6379
    

    bind

    綁定地址,若綁定 127.0.0.1 是本地訪問,若需要遠程訪問,可以綁定一個真實的 ip 地址

    protected-mode

    保護模式是否開啟,默認是開啟

    port

    端口設置,默認端口是 6379,我們也可以修改成其他的可用端口,例如集群的時候就會修改到端口

    GENERAL 通用

    通用配置,常用的有

    daemonize yes
    
    pidfile /var/run/redis_6379.pid
    
    loglevel notice
    
    logfile ""
    
    databases 16
    
    always-show-logo no
    
    set-proc-title yes
    

    daemonize

    是否以守護進程的方式運行,默認是 no,我們需要的話可以修改成 yes

    pidfile

    以后臺方式運行 redis ,我們就需要制定一個 pid 文件

    loglevel

    日志等級

     291 # Specify the server verbosity level.
     292 # This can be one of:
     293 # debug (a lot of information, useful for development/testing)
     294 # verbose (many rarely useful info, but not a mess like the debug level)
     295 # notice (moderately verbose, what you want in production probably)
     296 # warning (only very important / critical messages are logged)
    

    和我們項目中用到的一致:

    • debug

    用于開發和測試的調試信息

    • verbose

    罕見有用的信息

    • notice

    提示信息,期望在生產環境中看到的

    • warning

    告警信息,重要的信息會被打印到日志中

    logfile

    指定 redis 日志文件路徑

    databases

    redis 數據庫, 默認是 16 個

    always-show-logo

    是否總是顯示 reids logo ,就是下面這個 logo

                    _._
               _.-``__ ''-._
          _.-``    `.  `_.  ''-._           Redis 6.2.5 (00000000/0) 64 bit
      .-`` .-```.  ```\/    _.,_ ''-._
     (    '      ,       .-`  | `,    )     Running in standalone mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
     |    `-._   `._    /     _.-'    |     PID: 29303
      `-._    `-._  `-./  _.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |           https://redis.io
      `-._    `-._`-.__.-'_.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |
      `-._    `-._`-.__.-'_.-'    _.-'
          `-._    `-.__.-'    _.-'
              `-._        _.-'
                  `-.__.-'
    

    SNAPSHOTTING 快照

    快照,這里也就是 redis 的持久化,在規定的時間里面,執行了多少次操作,就會持久化到文件中

    redis 的持久化有兩種

    • RDB
    • AOF

    redis 是內存數據庫,程序宕機或者斷電都會導致數據丟失,因此 redis 就有這樣的持久化策略

    # save 3600 1
    
    # save 300 100
    
    # save 60 10000
    
    • save 3600 1

    如果 3600 s 內 redis 發生了 1 次操作, 那么就會做數據持久化

    • save 300 100

    如果 300s 內 redis 發生了 100 次操作, 那么就會做數據持久化

    • save 60 10000

    如果 60s 內 redis 發生了 10000 次操作, 那么就會做數據持久化

    后面咱們詳細寫到持久化的時候,再來細說和實際測試持久化的事情

    stop-writes-on-bgsave-error yes
    
    rdbcompression yes
    
    rdbchecksum yes
    
    dir ./
    
    
    

    stop-writes-on-bgsave-error

    redis 持久化出錯是否繼續執行 redis 程序,默認是打開的,持久化錯誤不能影響 redis 程序的執行,需要正常進行下去

    rdbcompression

    持久化的文件是否需要壓縮,默認是開啟的,這個功能會比較消耗性能

    rdbchecksum

    保存 rdb 持久化文件的時候,會進行錯誤檢查校驗

    dir

    rdb 文件的保存目錄

    REPLICATION 主從復制

    主從復制的配置在這個位置

    詳細的后續寫到主動復制的時候詳細的寫

    SECURITY 安全

    redis 的安全相關配置文件,咱們來看看密碼的事情

    # The requirepass is not compatable with aclfile option and the ACL LOAD
    # command, these will cause requirepass to be ignored.
    #
    # requirepass foobared
    

    redis 默認是不設置密碼的,但是我們為了遠程訪問安全,必須要設置密碼

    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379> config get requirepass
    1) "requirepass"
    2) ""
    127.0.0.1:6379> config set requirepass 888888
    OK
    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379> config get requirepass
    1) "requirepass"
    2) "888888"
    
    退出 redis 客戶端,再次連接 redis-server
    root@iZuf66y3tuzn4wp3h02t7pZ:~# redis-cli
    127.0.0.1:6379> ping
    (error) NOAUTH Authentication required.
    

    對 redis 設置了密碼之后,退出 redis 客戶端,再次連接 redis-server,發現 redis 報錯權限不足,此時我們使用 redis-client 連接 redis-server 就需要密碼了

    127.0.0.1:6379> auth 888888
    OK
    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379> config get requirepass
    1) "requirepass"
    2) "888888"
    

    CLIENTS 客戶端

    限制客戶端連接數

     maxclients 10000
    

    maxclients

    redis 限制客戶端連接數 默認是 10000 個,這個數字我們也可以修改成我們所期望的

    MEMORY MANAGEMENT 內存管理

    maxmemory <bytes>
    
    maxmemory-policy noeviction
    

    maxmemory
    redis 配置的最大內存容量,單位是字節

    maxmemory-policy

    redis 內存達到上限之后的處理策略是什么樣的,有如下幾個選型:

    • noeviction

    永不過期,返回錯誤

    • volatile-ttl

    刪除即將過期的

    • allkeys-random

    隨機刪除 key

    • volatile-random

    隨機刪除即將過期的 key

    • allkeys-lru

    刪除 lru 算法的 key

    • volatile-lru

    只對設置了過期時間的 key 進行 LRU

    LRU(Least recently used,最近最少使用)

    APPEND ONLY MODE 追加模式(aof 配置)

    APPEND ONLY MODE 用于 AOF 的持久化

    appendonly no
    
    appendfilename "appendonly.aof"
    
    # appendfsync always
    appendfsync everysec
    # appendfsync no
    

    appendonly

    默認是關閉的,redis 默認使用的是 rdb 持久化模式,基本是夠用的

    appendfilename

    aof 持久化 文件的名字

    appendfsync

    持久化同步策略

    • always 每次修改都會同步,消耗性能
    • everysec 每秒執行一次同步,異常情況下會丟失上 1 s 的數據
    • no 不主動同步數據,系統會自動同步,這種方式速度最快,但是丟失數據的幾率大

    對于 redis 配置文件常用常改的位置都給大家分享到了,需要多多在實際學習和工作中多多應用,熟能生巧

    參考資料:

    redis_doc

    歡迎點贊,關注,收藏

    朋友們,你的支持和鼓勵,是我堅持分享,提高質量的動力

    好了,本次就到這里

    技術是開放的,我們的心態,更應是開放的。擁抱變化,向陽而生,努力向前行。

    我是小魔童哪吒,歡迎點贊關注收藏,下次見~

    posted @ 2022-03-06 18:23  小魔童哪吒  閱讀(20)  評論(0編輯  收藏  舉報
    国产美女a做受大片观看