Redis學習筆記01---配置文件

来源:https://www.cnblogs.com/vitasyuan/archive/2018/03/18/8598025.html
-Advertisement-
Play Games

1.配置文件用法 啟動redis的時候指定配置⽂件路徑: ./redis server /path/to/redis.conf 不指定配置⽂件的時候使⽤內置配置⽂件啟動,此⽅法僅適⽤於開發和測試。 2.include配置配置 ⽤於引⼊其他配置⽂件,配置集群的時候⽤於引⼊公共配置⽤法如下: inclu ...


1.配置文件用法

啟動redis的時候指定配置⽂件路徑:

./redis-server /path/to/redis.conf

不指定配置⽂件的時候使⽤內置配置⽂件啟動,此⽅法僅適⽤於開發和測試。

2.include配置配置

⽤於引⼊其他配置⽂件,配置集群的時候⽤於引⼊公共配置⽤法如下:

include /path/to/other.conf

3.bind

此配置⽤於綁定伺服器⽹絡接⼝,預設情況下綁定所有可⽤的⽹絡端⼝。 可以通
過: bind ip1 ip2... 綁定多個端⼝。 ⽐如伺服器局域⽹ip地址為:192.168.20.127。
以下配置可以實現局域⽹和本地訪問:

bind 192.168.20.127 127.0.0.1

註:

bind 192.168.1.100 10.0.0.1
bind 127.0.0.1

上⾯配置只綁定了127.0.0.1這個ip。

bind 0.0.0.0

為綁定所有可⽤⽹絡端⼝。

4.protected-mode

保護模式配置:

protectedmode yes

當保護模式開啟的時候,且沒有配置bind和密碼,只有ipv4和ipv6的迴路ip127.0.0.1
and ::1可以訪問

5.port

redis監聽的端⼝配置:

port 6379
port 0 不監聽端⼝

6.timeout

設置客戶端連接超時時間,0的時候為關閉此功能。當客戶端在此時間段內沒有發送
指令,關閉連接。

timeout 0

7.daemonize

daemonize yes

設置redis後臺運⾏當後臺運⾏的時候會⽣成⼀個進程⽂件:

/var/run/redispid

8.pidfile

配置後臺運⾏時⽣成的pid⽂件路徑:

pidfile /var/run/redis6379.pid

9 loglevel

指定⽇志列印等級:

debug(開發測試)、verbose、notice(線上)、warning

loglevel notice

10.logfile

指定⽇志⽂件路徑和名稱如:

logfile "/Users/yuanweipeng/Desktop/redislog"

設置系統⽇志:

syslog-enabled no
syslog-ident redis
syslog-facility local0 設置系統⽇志設備名稱

11.databases

設置資料庫個數:

databases 16

預設的資料庫是db0,可以通過可以通過select dbid為每一個連接選擇不同的資料庫。資料庫的取值應該在0-(db-1)

12.save

將記憶體資料庫的內容寫到文件中。格式為:

save <seconds> <changes>

比如:

save 900 1 900秒內有一次key修改
save 300 10 300秒內有10次修改
save 60 10000

13.stop-writes-on-bgsave-error

當redis寫入到文件操作失敗後,redis將不會接受記憶體寫操作。用來提醒用戶數據持久化失敗。

stop-writes-on-bgsave-error yes

如果對redis進行了持久化監控,可以將此項配置成no,實現即使出現持久化問題,redis依然可以接受記憶體寫操作。

14.dbfilename

配置redis轉存文件的地址

dbfilename dump.rdb

15.dir

配置資料庫文件位置:

dir ./

16.主從複製相關

1.redis的主從複製是非同步的,可以配置當某幾個slave資料庫連不上的時候,停止接收記憶體寫操作。
2.主從數據同步是自動完成的,當主從網路短線重新連接的時候,從庫會自動從新數據同步。

slaveof <masterip> <masterport>

用於配置主庫ip地址和埠。

masterauth <master-password>

配置主庫的資料庫密碼。

slave-serve-stale-data yes

次配置用於設置當slave和master失去連接的時候是否繼續接受客戶端連接。當此項目設置為yes的時候會返回過期的數據或者null,當設置為no的時候會返回error:

SYNC with master in progress

設置slave是否接受寫操作:

slave-read-only yes

slave可用於保存短暫的數據,當從庫和主庫同步數據的時候,會將寫入到slave的數據刪除。

repl-diskless-sync no

複製同步策略配置:disk or socket.
當增加新的slave資料庫或者斷開後重新連接的時候,會發生全量同步,這時候是將redis的db文件直接從主庫傳輸到從庫。文件傳輸有兩種方式:

第一種:先將記憶體數據寫入磁碟,然後再將生成的文件傳輸到slave。
第二種:直接新起一個進程,將數據通過socket傳輸到slave

根據網路速度和磁碟速度選擇不同的複製方式。

repl-ping-slave-period 10

slave向master發送ping請求的時間間隔。

repl-timeout 60

超時時間,應該小於repl-ping-slave-period

repl-disable-tcp-nodelay no

設置是否會有延遲時間。設置為no的時候主庫和從庫數據傳輸的延遲時間較短。但是消耗帶寬比較大。

repl-backlog-size 1mb

設置slave斷開連接的時候數據的緩衝區,在緩衝區沒有用完之前,從庫回覆鏈接只需要從緩衝區同步數據,不需要全量同步。只有當有從庫的時候才會設置此項。

repl-backlog-ttl 3600

設置當master沒有slave連接的時候,多久釋放緩衝區。設置為0的時候表示不釋放緩衝區。

slave-priority 100

設置slave的優先順序,當master宕機的時候會選出一個優先順序最低的slave提升為主庫。0表示不能當作master
當slave少於3個鏈接的時候,master停止接受寫入。判斷失聯時間為:10s內slave沒有從master複製數據,則表示失聯。

min-slaves-to-write 3 預設設置為0,關閉此功能
min-slaves-max-lag 10

17.安全設置相關

requirepass 123456

用於設置客戶端連接密碼。

rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52

命令重命名。
maxclients 10000
設置最大客戶端連接數量。

maxmemory <bytes>

設置最大記憶體。
當redis記憶體達到上限的時候,會根據配置的垃圾回收策略刪除key。當沒有設置垃圾回收策略的時候,redis會對寫操作報異常,都操作仍然正常返回數據。
當沒有設置此配置項的時候,只有當系統記憶體達到上限的時候會拋出out-of-memory exception異常。

maxmemory-policy noeviction 預設配置

volatile-lru -> 使用最近最少使用演算法刪除過期的key
allkeys-lru -> 根據最近最少使用演算法刪除key
volatile-random -> 從過期的key中隨機刪除
allkeys-random -> 隨機刪除key
volatile-ttl -> 刪除最近過期的key
noeviction -> 直接在寫操作的時候返回error

LRU演算法中的樣本數,比如redis會檢查5個key中的lru
maxmemory-samples 5

18.Redis集群

需要開啟集群配置的才能當作Redis集群的一個節點:

cluster-enabled <yes/no>:

該項如果設置成yes,該實例支持redis集群。否則該實例會像往常一樣以獨立模式啟動。

集群的每一個節點都需要有一個配置文件,這個文件由redis生成和更新的。

cluster-config-file nodes-6379.conf

必須註意到儘管該項是可選的,這並不是一個用戶可以編輯的配置文件,這是redis集群節點自動生成的配置文件,每次一旦配置有修改它都通過該配置文件來持久化配置(基本上都是狀態),這樣在下次啟動的時候可以重新讀取這些配置。該文件中列出了該集群中的其他節點的狀態,持久化變數等信息。 當節點收到一些信息的時候該文件就會被沖重寫

節點過期時間配置,當超過此時間則認為此節點為失敗狀態。

cluster-node-timeout 15000

redis集群節點的最大超時時間。響應超過這個時間的話該節點會被認為是掛掉了。如果一個master節點超過一定的時候無法訪問,它會被它的slave取代。 該參數在redis集群配置中很重要。很明顯,當節點無法訪問大部分master節點超過一定時間後,它會停止接受查詢請求。

cluster-slave-validity-factor <factor>

:如果將該項設置為0,不管slave節點和master節點間失聯多久都會一直嘗試failover(設為正數,失聯大於一定時間(factor*節點TimeOut),不再進行FailOver)。比如,如果節點的timeout設置為5秒,該項設置為10,如果master跟slave之間失聯超過50秒,slave不會去failover它的master(意思是不會去把master設置為掛起狀態,並取代它)。註意:任意非0數值都有可能導致當master掛掉又沒有slave去failover它,這樣redis集群不可用。在這種情況下只有原來那個master重新回到集群中才能讓集群恢復工作。

cluster-migration-barrier <count>:

一個master可以擁有的最小slave數量。該項的作用是,當一個master沒有任何slave的時候,某些有富餘slave的master節點,可以自動的分一個slave給它。具體參見手冊中的replica migration章節

cluster-require-full-coverage <yes/no>:

如果該項設置為yes(預設就是yes) 當一定比例的鍵空間沒有被覆蓋到(就是某一部分的哈希槽沒了,有可能是暫時掛了)集群就停止處理任何查詢操作。如果該項設置為no,那麼就算請求中只有一部分的鍵可以被查到,一樣可以查詢(但是有可能會查不全)

19.慢查日誌

slowlog-log-slower-than 1000000

此配置項指定查詢時間超過多少的操作,列印日誌。1000000=1s。當此配置為0的時候記錄每次查詢操作。為負數的時候關閉此功能。

slowlog-max-len 128

它決定 slow log 最多能保存多少條日誌, slow log 本身是一個 FIFO 隊列,當隊列大小超過 slowlog-max-len 時,最舊的一條日誌將被刪除,而最新的一條日誌加入到 slow log ,以此類推。

20.推送/訂閱功能

notify-keyspace-events "" 

空的時候關閉此功能,選項值為非空字元串時,啟用該功能,非空字元串由特定的多個字元組成,每個字元表示不同的意義:

     K:keyspace事件,事件以__keyspace@<db>__為首碼進行發佈;

     E:keyevent事件,事件以__keyevent@<db>__為首碼進行發佈;

     g:一般性的,非特定類型的命令,比如del,expire,rename等;

     $:字元串特定命令;

     l:列表特定命令;

     s:集合特定命令;

     h:哈希特定命令;

     z:有序集合特定命令;

     x:過期事件,當某個鍵過期並刪除時會產生該事件;

     e:驅逐事件,當某個鍵因maxmemore策略而被刪除時,產生該事件;

     A:g$lshzxe的別名,因此”AKE”意味著所有事件。

註意,該選項的值中至少需要包含K或者E,否則不會發佈任何事件。比如,如果需要開啟針對列表的keyspace事件通知,則該選項需要配置為“Kl”;


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 短距離無線通信是物聯網的基礎,隨著物聯網IoT的火熱發展,各種短距離無線通信協議也是層出不窮,這些協議標準各有優缺以及應用場合。各種協議並存的現象將長期存在,沒有人能夠解決無線短距離互聯標準不統一的問題,因為行業發展太快而標準跟不上,短期內還看不到一統江湖的短距離無線標準。今天痞子衡就用一張表為大家... ...
  • linux常用輸入函數scanf和fgets通常都是阻塞式的: 1、如果用戶沒有輸入,則程式會阻塞等待用戶輸入輸入內容後,且需要用戶點回車鍵才能完成讀取鍵盤輸入。 2、用戶輸入的信息,會在屏幕上顯示出來。 以下代碼實現了: 1、用戶沒有輸入,則在設定時間過後,程式會繼續運行下去 2、用戶輸入信息不會 ...
  • CentOS版本7.2,MySql版本5.7 1、安裝MySql,安裝前先跟新軟體源,安裝過程中會提示設置root密碼 sudo apt-get update sudo apt-get install mysql-server 2、配置遠程訪問 編輯配置文件 sudo vi /etc/mysql/m ...
  • Linux的文件訪問許可權分為 讀、寫、執行三種 r:可讀(4) w:可寫(2)對目錄來說則可新建文件 x:可執行(1)對目錄來說則可進入該目錄 可用 ls -l 查看文件 像上圖的-rw-r--rw- 其中的第一個字元表示的是文件類型(- 表示普通文件,d 表示目錄文件,c : 為字元串設備,若路由 ...
  • 一、學Linux網路命令有什麼好處 網路的出現,我們的生活更方便了,處理事情的效率也越來越高,也可以看到全世界文化的差異。同時我們接受新事物的信息越來越來強,新事物的信息也越來越來多。網路對於我們爾等平民百姓來講就是透明的只知道有網線而已,但是對於我們程式猿來講,需要理解網路的相關知識,什麼IP地址 ...
  • [20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED2.txt--//簡單探究12c TABLE ACCESS BY INDEX ROWID BATCHED特性.--//當使用12c時,執行計划出現TABLE ACCESS BY INDEX ROWID ...
  • [20180316]理解db file parallel read等待事件.txt--//一直對db file parallel read等待事件不理解,因為在實際系統中很少遇到這樣的等待事件.SCOTT@book> @ &r/ver1PORT_STRING VERSION BANNER x86_6 ...
  • 2 伺服器安裝 運行安裝程式後,首先進入 SQL Server 安裝中心。選擇左側導航樹中的“安裝”菜單項。 圖2-1 SQL Server 安裝中心 在右側菜單中點擊“全新 SQL Server 獨立安裝或向現有安裝添加功能”,進入安裝程式支持規則對話框。 圖2-2 安裝程式支持規則 通過檢查後,... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...