Redis服務之常用配置(一)

来源:https://www.cnblogs.com/qiuhom-1874/archive/2020/07/27/13383166.html
-Advertisement-
Play Games

很多開源軟體都支持include這個指令,把某個目錄下的文件導入到指定位置做配置文件的方式(最常見的就是把某個目錄下的以點conf結尾的文件導入到當前位置);以上紅框中的內容表示把/usrlocal/reds/conf.d/test.conf文件都導入到此處;這裡需要註意一點redis好像不支持以... ...


  上一篇博客聊了下redis的簡介以及redis的yum安裝和源碼編譯安裝需要註意到問題,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/13378138.html;今天我們來對redis的配置文件相關資料和配置的使用和說明;

  yum安裝的redis預設版本是3.2.12,預設配置文件就是/etc/redis.conf;預設配置文件大概可以分如下段配置

[root@node1 ~]# grep "^###" /etc/redis.conf 
################################## INCLUDES ###################################
################################## NETWORK #####################################
################################# GENERAL #####################################
################################ SNAPSHOTTING  ################################
################################# REPLICATION #################################
################################## SECURITY ###################################
################################### LIMITS ####################################
############################## APPEND ONLY MODE ###############################
################################ LUA SCRIPTING  ###############################
################################ REDIS CLUSTER  ###############################
################################## SLOW LOG ###################################
################################ LATENCY MONITOR ##############################
############################# EVENT NOTIFICATION ##############################
############################### ADVANCED CONFIG ###############################
[root@node1 ~]# 

  提示:預設配置文件分了14個配置段,每個配置段都有相應的指令;

  INCLUDE相關配置指令

  提示:很多開源軟體都支持include這個指令,把某個目錄下的文件導入到指定位置做配置文件的方式(最常見的就是把某個目錄下的以點conf結尾的文件導入到當前位置);以上紅框中的內容表示把/usrlocal/reds/conf.d/test.conf文件都導入到此處;這裡需要註意一點redis好像不支持以模式匹配的方式導入多個文件,必須單個導入,除此之外導入的文件必須得存在可訪問;對於include指令放在哪個位置,需要自行定義,因為include以下的配置文件如果和include指定的文件配置有重覆,以include之下的內容為準;也就說導入配置會覆蓋導入配置之前的配置;

  NETWORK相關配置指令

  bind:該指令用於指定redis監聽的ip地址,預設情況redis監聽在本機的127.0.0.1這個迴環地址上;

  提示:bind支持綁定多個ip地址,綁定多個ip地址,每個ip地址分別用空格隔開即可;如果想要監聽在本機所有地址,可以寫成bind 0.0.0.0或者註釋bind指令,但是主註釋bind指令對於開啟了保護模式,雖然監聽在本機所有地址,也能夠連接redis,但是沒法做任何操作;以上配置表示讓redis監聽在本機的127.0.0.1 和192.168.0.41這兩個ip地址上;

  驗證:重啟reids看看我們配置的地址是否處於監聽狀態?

  protected-mode:該指令用於指定是否開啟保護模式;所謂保護模式就是如果redis在沒有配置密碼,也沒有配置bind地址,即便監聽在本機的所有地址,遠程客戶端是可以連接到redis,但是沒法正常使用;yes表示開啟保護功能;no表示不開啟此功能;

  提示:以上配合表示開啟保護模式,這也就意味著,如果我們在配置文件中如果沒有配置bind監聽地址和設置密碼,那麼redis是不能被遠程連接夠使用的;

  驗證:把redis的bind指令註釋掉,然後重啟服務,使用另一臺客戶段連接192.168.0.41,看看是否可以用?

  提示:註釋掉bind指令,重啟redis後,預設後監聽在本機所有地址上;

  測試:本機是否可連接使用redis?

  提示:本機上可以正常連接和使用redis

  非本機客戶端是否可以連接使用呢?

  提示:可以看到用非本機客戶端是可以正常連接到redis,但是沒有辦法執行命令,它告訴我們redis開啟了保護模式,解決上面的報錯,可以把保護模式關閉了(關閉保護模式可以使用CONFIG SET protected-mode no 這種就是在終端直接使用命令關閉(非當前終端,可以使用本機連接的終端上使用);第二中方式就是在配置文件中把protected-mode 配置成no,然後重啟redis;第三種是停掉當前redis,啟動時加上--protected-mode no選項啟動;),其次就是給redis設置一個密碼或者啟動bind指令監聽一個可用地址即可;

  測試:在本機上使用連接redis-server的方式在終端命令行中使用CONFIG SET protected-mode no命令關閉保護模式

  提示:可以看到在本機連接終端上執行CONFIG SET protected-mode no 命令後,在非本機連接的客戶端終端就可以操作red

  port:該指令用於指定redis TCP套接字監聽埠,預設是6379;如果使用0 表示不監聽tcp套接字

  提示:以上配置表示redis使用TCP套接字的6380埠對外提供服務;

  驗證:重啟redis服務,看看對應6380埠是否處於監聽狀態,redis-cli 是否可以連接6380使用redis?

  提示:重啟服務6380埠正常監聽,用redis-cli也是可以正常連接訪問redis;這裡需要註意用-p指定埠需要有空格;

  tcp-backlog:該指令用於指定TCP三次握手的時候 server 端收到 client ack 確認號之後的隊列值預設是511;通常會這個選項不需要我們去額外的更改,用預設的511是可以的;

  unixsocket:該指令用於指定本地使用unix socket 方式連接時監聽的UNIX SOCKET文件路徑;

  unixsocketperm:該指令用於指定UNIX SOCKET文件的許可權;

  示例:啟用UNIX SOCKET

  驗證:重啟redis服務,然後使用unix socket方式連接本機redis

  提示:redis-cli命令 -s選項用於指定socket文件路徑;從上面的測試可以看到,重啟redis後,在對應目錄下就生成了在配置文件中我們指定的名稱的sock文件;用redis-cli客戶端軟體使用/tmp/redis.sock文件連接redis也是可以正常操作redis;

  timeout:該指令用於指定客戶端和 Redis 服務端的連接超時時間,預設是 0,表示永不超時。

  tcp-keepalive:該指令用於指定tcp連接的會話保持時間,預設配置是300秒。

  GENERAL相關配置指令

  daemonize:該指令用於指定是否讓redis運行為後臺守護進程運行,預設是no;如果你想讓它在後臺運行,你就把它改成yes,當 redis 作為守護進程運行的時候,它會寫一個 pid 到 /var/run/redis.pid 文件裡面;

  示例:配置redis運行為後臺守護進程

  驗證:重啟redis,看看是否能夠運行為後臺守護進程?

  提示:可以看到我們不用systemctl 去運行redis也可以讓redis運行為後臺,並且使用redis-cli工具也可以正常連接redis對它進行操作;

  supervised:該指令用於指定redis操作系統相關參數,預設是no;可以設置通過 upstart 和 systemd 管理 Redis 守護進程,centos 7以後都使用 systemd;

  pidfile:該指令用於指定redis pid文件;預設是/var/run/redis_6379.pid;

 

  提示:我這邊測試不管是編譯還是yum安裝,它預設能夠啟動起來,但是在/var/run/目錄下就找不到對應redis的pid文件;後續看了下目錄的許可權,發現用root啟動redis在對應目錄下就能創建pid文件,普通用戶就不行;

  驗證:啟動reids,在/var/run/目錄下看看是否有redis_6379.pid文件?

  提示:可以看到redis啟動了,但是沒有找到pid文件;大概是許可權的問題吧;

  驗證:把/var/run/目錄添加一個redis用戶可以寫的許可權,然後重啟redis,看看對應目錄下是否可生成pid文件?

  提示:可以看到,當我們給對應目錄增加了acl許可權以後,重啟redis,pid文件就生成了;對於這種,建議還是單獨建立一個目錄,把許可權都給redis用戶,然後配置pidfile 指向新建的目錄;

  loglevel:該指令用於指定redis日誌的級別,預設是notice級別;

  logfile:該指令用於指定redis日誌文件路徑;預設是/var/log/redis/redis.log;

  syslog-enabled:該指令用於指定是否啟用syslog記錄redis日誌;預設是no,不啟用;

  syslog-ident:該指令用於指定syslog的標識,預設是redis

  syslog-facility:該指令用於指定使用syslog的那個設施來記錄redis日誌;預設是local0

  示例:開啟rsyslog記錄redis日誌

  提示:以上配置是在redis上開啟了讓rsyslog記錄日誌,把redis的日誌發送到local0這個設施上;

  在rsyslog中定義local0把日誌記錄到某個文件中

  提示:以上配置是表示把local0這個設施上的任何級別日誌都記錄到/tmp/test.log中;

  驗證:重啟rsyslog和redis 看看/tmp/test.log中是否記錄redis的日誌?

  提示:可以看到重啟了rsyslog和redis後在/tmp/test.log中就記錄了redis的啟動日誌信息;

  提示:其實預設情況redis rsyslog會把系統上的info級別以上的日誌都記錄到/var/log/messages這個文件中,所以我們啟動redis可以在/var/log/messages這個文件中看到redis的日誌,也可以在/var/log/redis/redis.log中看到redis的日誌;通常情況不建議讓redis的日誌寫多份,建議還是用logfile指定日誌文件,然後不啟用rsyslog;

  databases:該指令用於指定redis的資料庫數量;預設人庫是0;就是說這個指令指定的值可以限定redis最大能有多少個資料庫,預設情況redis最大支持16個庫;當然如果16個庫少了,我們可以通過調整databases的值,來調大支持的資料庫數量;

  示例:預設不更改databases的值,連接資料庫,用select命令看看最大能夠切換到那個庫?

  提示:redis里的資料庫都是以數字命名的,不像mysql里的可以用字元串命名;select命令是用於切換資料庫,類似mysql里的use命令;從上面的信息可以看到,我們在配置文件中指定databases為16,客戶端連接redis最大也只能切換到15號庫,這是因為redis資料庫是從0號庫開始的;


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

-Advertisement-
Play Games
更多相關文章
  • Kubernetes K8S 概述、特性與架構說明,以及核心技術概念和API對象詳解 ...
  • 大家好,我是良許。 相信大家平時都會有需要複製粘貼數據的時候,如果是打開文件進行複製粘貼,就不可避免的需要較多的滑鼠與鍵盤的操作,就會比較繁瑣。那麼有沒有可以省掉這些繁瑣操作的複製粘貼的方法呢? 答案是肯定的,那就是重定向。重定向是一種高效的方法,無需大量的滑鼠與鍵盤操作就可以完成數據的轉移。重定向 ...
  • 下麵簡單的總結一下,自己對進程間通信的理解。首先,要意識到一點:各進程間擁有相互獨立的地址空間,所以進程間無法在用戶態完成通信,必須要藉助操作系統,也就是內核態來完成相應的操作。 內核態和用戶態 由上圖可知,系統分為內核態和用戶態,其中內核態包括內核,用戶態主要指應用程式。內核控制了電腦的軟體和硬 ...
  • Jenkins插件的安裝、插件依賴關係及插件版本迭代 本文檔適用於解決 jenkins部署 完成後,插件的安裝、依賴及版本迭代問題 在有網的環境部署jenkins的插件問題 安裝插件 因為訪問外網需要手動配置代理的原因,第一次登進去後會出現以下的界面 可以選擇配置代理來解決 解決後會出現 插件的安裝 ...
  • 基於docker部署Jenkins 0.我做這個文檔的時候,大概是19年12月前後,那會er2.200是最新版的。 1. 下載鏡像 docker pull jenkins/jenkins 一定要安裝最新版的 jenkins,舊版本,很多插件無法安裝 2. 查看jenkins的詳細信息 docker ...
  • 使用Fcitx5,可以使用雙拼,可以使用雲端聯想,可以引用詞庫(不用再自己養詞庫了!) ...
  • 半導體工程組織JEDEC為動態隨機存取存儲器(DRAM)設定了標準,該組織上周發佈了最終的JESD79-5DDR5規範。新型存儲器是其每引腳數據傳輸速度的兩倍,其存儲設備的容量增加了四倍,降低了工作電壓,並引入了多種方法來提高瘦節點上DRAM的可靠性-並降低功耗。JEDEC說,DDR5 SDRAM將 ...
  • 分詞器 什麼是IK分詞器? 分詞:即把一段中文或者別的劃分成一個個的關鍵字,我們在搜索時會把自己的信息進行分詞,會把資料庫中或者索引庫中的數據進行分詞,然後進行一個匹配操作,Elasticsearch的標準分詞器,會將中文分為一個一個的字,而不是詞,比如:“石原美里”會被分為“石”、“原”、“美”、 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...