日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

redis配置_Redis配置大全(三)

發布時間:2024/1/23 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis配置_Redis配置大全(三) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?點擊關注Coding小暮,獲取更多優質內容哦

Redis配置文件的講解,今天將會全部講完。先來個前文回顧:

吐血整理Redis配置大全(一)

Redis配置大全(二)

本篇內容包含:

  • 主動碎片整理
  • 安全
  • 客戶端配置
  • 懶惰刪除
  • RDB快照
  • AOF追加模式
  • LUA腳本
  • 延遲監視器
  • 主動碎片整理

    主動碎片整理允許Redis服務器壓縮內存中的小分配和數據回收之間的空間,從而允許收回內存。需要了解的重要事項:

  • 默認情況下,此功能是禁用的,并且只有當你編譯Redis使用我們隨Redis源代碼一起發布的Jemalloc副本時才有效。這是Linux版本的默認設置。
  • 如果沒有碎片問題,永遠不需要啟用此功能。
  • 一旦遇到碎片問題,您可以在需要時使用命令“CONFIG SET activedefrag yes”啟用該特性。
  • 配置參數可以微調碎片整理過程的行為。如果您不確定它們的含義,那么最好保持默認值不變。
  • activedefrag?yes

    啟用活動碎片整理

    active-defrag-ignore-bytes?100mb

    啟動活動碎片整理所需的碎片浪費最少

    active-defrag-threshold-lower?10

    啟動活動碎片整理的最小碎片百分比

    active-defrag-threshold-upper?100

    內存碎片超過 100%,則盡最大努力整理

    active-defrag-cycle-min?25

    磁盤碎片整理的最小工作量(CPU百分比)

    active-defrag-cycle-max?75

    磁盤碎片整理的最大工作量(CPU百分比)

    安全

    requirepass?foobared

    要求客戶端在執行任何命令之前,必須先執行 AUTH?,在不信任其他人可以訪問運行redis服務器的主機的環境中,這可能很有用。

    rename-command?CONFIG?""

    命令重命名。如果將一個命令修改為空字符串,則改命令就相當于被抹殺掉了。在生產環境中,會有部分命令使用 rename-command 來重置掉,例如:keys、flushdb、flushall、config等等。

    客戶端配置

    maxclients?10000

    設置同時連接的客戶端的最大數量。默認情況下,此限制設置為10000個客戶端,但是如果Redis服務器無法讀取配置進程文件限制以允許指定的限制,則允許的最大客戶端數將設置為當前文件限制減去32(因為Redis保留了一些文件描述符供內部使用)。一旦達到限制,Redis將關閉所有新連接,并發送錯誤“max number of clients reached”。

    懶惰刪除

    Redis有兩個原語來刪除鍵。一個叫做DEL,是對象的阻塞刪除。這意味著服務器停止處理新命令,以同步方式回收與對象關聯的所有內存。如果刪除的鍵與一個小對象相關聯,那么執行DEL命令所需的時間非常少,與Redis中大多數其他O(1)或O(log_N)命令相當。但是,如果該鍵與包含數百萬個元素的聚合值相關聯,服務器可能會阻塞很長時間(甚至幾秒鐘)以完成操作。出于上述原因,Redis還提供了非阻塞刪除原語,如UNLINK(非阻塞DEL)和FLUSHALL和FLUSHDB命令的ASYNC選項,以便在后臺回收內存。這些命令在固定的時間內執行。另一個線程將盡可能快地遞增地釋放后臺的對象。Redis在以下場景中會主動刪除對象:

  • 在收回時,由于maxmemory和maxmemory策略配置,以便為新數據騰出空間,而不會超過指定的內存限制。
  • key過期原因:必須從內存中刪除一個具有超時時間的key(請參閱 EXPIRE 命令)。
  • 在一個已存在的key上執行命令。例如,RENAME命令可以在舊key內容被另一個替換時刪除它。類似地,SUNIONSTORE或SORT with STORE選項可以刪除現有的鍵。SET命令本身刪除指定鍵的舊內容,以便用新的字符串替換它。
  • 在復制過程中,當從庫和它的主庫執行完全的重新同步時,為了加載剛剛傳輸的RDB文件,整個數據庫的內容被刪除。
  • 在上述所有情況下,刪除對象的方式默認是阻塞的,比如:DEL 命令。然而,你可以具體配置每種情況,以代替以非阻塞的方式(UNLINK 命令)釋放內存。

    lazyfree-lazy-eviction?no
    lazyfree-lazy-expire?no
    lazyfree-lazy-server-del?no
    slave-lazy-flush?no

    RDB快照

    save?900?1
    save?300?10
    save?60?10000

    快照創建的頻率。saveN??M,seconds 秒 changes 改動, 如果在 N 秒內,有M次改動,則開始創建快照。

    stop-writes-on-bgsave-error?yes

    當RDB保存故障時,不影響正常的寫入

    rdbcompression?yes

    .rdb數據庫時使用LZF壓縮字符串對象

    rdbchecksum?yes

    CRC64校驗,使該格式更能抵抗損壞,但是在保存和加載RDB文件時會付出一定的性能損耗(大約10%),因此可以禁用該格式以獲得最佳性能。

    dbfilename?dump.rdb

    備份數據的文件名

    dir?./

    備份文件目錄。該配置指定了 ${dbfilename} 所在的目錄,AOF生成的 Append 文件也會存儲在此目錄。

    AOF追加模式

    追加模式是在.aof文件中追加寫入執行過的命令。這種備份方案更加的安全,如果發生服務斷電,Redis最多只是丟失了1秒鐘的寫操作。AOF和RDB持久性可以同時啟用,

    appendonly?yes

    啟用aof

    appendfilename?"appendonly.aof"

    aof文件名

    #?appendfsync?always
    appendfsync?everysec
    #?appendfsync?no

    fsync()調用告訴操作系統立即將數據寫入磁盤,而不是等待輸出緩沖區中的更多數據。有些操作系統真的會刷新磁盤上的數據,有些其他操作系統只會嘗試盡快這樣做。Redis支持三種不同的模式:

    • no:不要fsync,讓操作系統在需要的時候刷新數據,性能較高。
    • always: fsync每次寫入僅追加日志后。性能會有所損耗,安全性更高。
    • everysec: fsync每秒鐘只進行一次。折中方案。

    如果不確定應該使用哪個,使用“everysec”。

    no-appendfsync-on-rewrite?no

    當AOF fsync策略設置為always或everysec,后臺保存進程(后臺保存或AOF log后臺重寫)對磁盤執行大量I/O操作時,在某些Linux配置中,Redis可能會在fsync()調用上阻塞過長時間。注意,目前還沒有解決這個問題的辦法,因為即使在不同的線程中執行fsync也會阻塞同步 write(2) ?調用。為了緩解這個問題,可以使用 no-appendfsync-on-rewrite 來防止在BGSAVE或BGREWRITEAOF正在運行時在主進程中調用fsync()。如果你有延遲問題,把它改為“yes”,否則就保留“no”。從安全性的角度來看,這是最安全的選擇。

    auto-aof-rewrite-percentage?100
    auto-aof-rewrite-min-size?64mb

    設置aof文件滾動大小,如果為0的話,就是禁止滾動生生aof文件

    aof-load-truncated?yes

    Redis啟動時,可能會發現AOF文件在最后被截斷。這種情況可能發生在Redis所在的系統崩潰時,特別是在沒有使用data=ordered選項的情況下。當這種情況發生時,Redis可以退出并拋出錯誤,或者加載盡可能多的數據(現在的默認值)并在最后發現AOF文件被截斷時啟動。下面的選項控制這種行為。如果aof-load-truncated設置為yes,則將加載截短的AOF文件,并且Redis服務器將開始發出日志以將事件通知用戶。否則,如果該選項設置為no,則服務器將中止并顯示錯誤并拒絕啟動。如果該選項設置為no,則用戶需要在重新啟動服務器之前使用“redis-check-aof”程序修復AOF文件。

    aof-use-rdb-preamble?no

    當重寫AOF文件時,Redis可以在AOF文件中使用RDB前綴來更快地重寫和恢復。當打開這個選項時,重寫的AOF文件由兩個不同的節組成:

    [RDB file][AOF fail]

    Redis啟動時候,先加載RDB文件,在根據RDB的尾部時間加載AOF文件。

    LUA腳本

    lua-time-limit?5000

    Lua腳本的最大執行時間(毫秒)。如果達到了最大執行時間,Redis會記錄一個腳本在超過最大允許時間后仍在執行,并開始回復一個錯誤的查詢。當長時間運行的腳本超過最大執行時間時,可以使用KILL和SHUTDOWN NOSAVE命令終止。第一個可以用來停止尚未調用write命令的腳本。第二種方法是在腳本已經發出了write命令但用戶不想等待腳本自然終止的情況下停止的唯一方法。將其設置為0或負值,可以無限制地執行而不發出警告。

    延遲監視器

    latency-monitor-threshold?0

    Redis延遲監視子系統在運行時采樣不同的操作,以便收集與Redis實例可能的延遲來源相關的數據。通過LATENCY命令,可以打印圖形并獲得報告的用戶可以使用此信息。默認值為0表示關閉延遲監視器。如果在生產環境中需要臨時啟用的話,可以使用:

    CONFIG SET latency-monitor-threshold ?命令啟用延遲監控器。


    總結

    以上是生活随笔為你收集整理的redis配置_Redis配置大全(三)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。