linux離線部署redis及redis.conf詳解


一、離線部署redis

由於博主部署的虛擬機沒有網絡也沒有gcc編譯器,所以就尋找具備gcc編譯器的編譯環境把redis編譯安裝好,Copy Redis安裝目錄文件夾到目標虛擬機的目錄下。copy時redis-sentinel文件要先復制到安裝目錄外的其他目錄,才能復制到編譯環境外部,直接從安裝目錄復制到編譯環境外會失敗。

1.1      環境

l  Linux-EulerOS_CSP_19.1.0.B068

l  Redis-3.0.7.tar.gz

l  虛擬機無網絡連接

1.2      依賴

l  依賴gcc3.4.3編譯Redis-3.0.7.tar.gz解壓包。可用 gcc -v 命令檢測安裝環境是否安裝了gcc。

1.3      工具

l  WinSCP;主機window和虛擬機linux之間的文件傳輸

l  Vim:編輯redis.conf

l  Putty:遠程登陸虛擬機

1.4   安裝步驟(安裝目錄以個人目錄為准)

l  Copy Redis-3.0.7.tar.gz : 虛擬機無網絡,主機下載Redis-3.0.7.tar.gz使用WinSCP傳輸到編譯環境的安裝目錄/opt/z00475942/

l  解壓源碼Redis-3.0.7.tar.gz

        

       l  結果:生成並解壓到./redis-3.0.7目錄,這個目錄是自動生成的。

        

l   進入解壓目錄進行編譯(依賴gcc

l  編譯結果

l  安裝到指定目錄/opt/z00475942/redis,路徑需為絕對路徑

l  安裝目錄下的文件,redis-server是服務端,redis-cli是客戶端

l  Copy redis.conf 安裝目錄, redis.confredis源碼目

l  使用vim打開redis.conf   vim ./redis.conf  編輯cong文件, 設置daemonize 值為 yes 則redis可后台運行。

l  啟動時可能遇到無權限的提示:需要設置啟動文件至最高權限

 

l  啟動Redis 1- ./redis-server(前端啟動不讀取配置文件,虛擬機關閉則關閉) 

                   2- ./redis-server /usr/local/redis/bin/redis.conf(后端啟動讀取配置文件啟動,虛擬機關閉仍后台運行,前提是已設置redis.conf 文件中 daemonize 值為 yes) 

 

l  查看后台運行的redis

l  查看監聽6379(默認端口)的程序

l  結束后台運行的redis,查看后台運行的redis為空。

1.6      Redis.conf 詳解

l  Include:引入其它配置文件。比如說當你有多個server,而有一些配置項是它們公用的,那么你可以將這些公用的配置項寫進一個配置文件common.conf里,然后這些serverinclude這個配置文件,這些server自己的配置項則分別寫在自己的配置文件里。

l  bind:默認情況下,redis server 上所有有效的網絡接口上監聽客戶端連接。如果只想讓它在一個或多個網絡接口上監聽,那你就綁定一個IP或者多個IP。多個ip空格分隔即可。

l  protected-mode:當開啟后,禁止公網訪問redis。它啟用的條件有兩個,第一是沒有使用bind,第二是沒有設置訪問密碼。

l  daemonize: [yes]redis以守護線程運行,這時redis instance會將進程號pid寫入默認文件/var/run/redis.pid。;[no]前端模式啟動,ssh啟動的命令窗口關閉則redis-server程序結束。

l  pid:當redis以守護線程運行時,它會把 pid 默認寫到/var/run/redis.pid 文件里面,但是你可以在這里自己制定它的文件位置。

l  port:監聽端口號,默認為 6379,如果你設為 0 redis 將不在 socket 上監聽任何客戶端連接。

l  tcp-backlog: 此參數確定了TCP連接中已完成隊列(完成三次握手之后)的長度,當然此值必須不大於Linux系統定義的/proc/sys/net/core/somaxconn值,默認是511,而Linux的默認參數值是128。當系統並發量大並且客戶端速度緩慢的時候,可以將這二個參數一起參考設定。

l  loglevel:日志級別。可選項有:debug(記錄大量日志信息,適用於開發、測試階段);  verbose(較多日志信息);  notice(適量日志信息,使用於生產環境);warning(僅有部分重要、關鍵信息才會被記錄)。

l  logfile:日志文件的位置,當指定為空字符串時,為標准輸出,如果redis已守護進程模式運行,那么日志將會輸出到  /dev/null

l  save:保存數據到磁盤。格式是:save <seconds> <changes> ,含義是在 seconds 秒之后至少有 changeskeys 發生改變則保存一次。

l  databases:設置數據庫的數目。默認的數據庫是DB 0 ,可以在每個連接上使用select  <dbid> 命令選擇一個不同的數據庫,dbid是一個介於0databases - 1 之間的數值。

l  dir:數據庫存放目錄。必須是一個目錄,aof文件也會保存到該目錄下。

l  maxclients:設置客戶端最大並發連接數,默認無限制,Redis可以同時打開的客戶端連接數為Redis進程可以打開的最大文件描述符數-32redis server自身會使用一些),如果設置 maxclients 0,表示不作限制。當客戶端連接數到達限制時,Redis會關閉新的連接並向客戶端返回max number of clients reached錯誤信息。

l  maxmemory指定Redis最大內存限制,Redis在啟動時會把數據加載到內存中,達到最大內存后,Redis會先嘗試清除已到期或即將到期的Key,當此方法處理后,仍然到達最大內存設置,將無法再進行寫入操作,但仍然可以進行讀取操作。Redis新的vm機制,會把Key存放內存,Value會存放在swap區,格式:maxmemory <bytes> 。

l  maxmemory-policy:當內存使用達到最大值時,redis使用的清楚策略。有以下幾種可以選擇

1volatile-lru   利用LRU算法移除設置過過期時間的key

   (LRU:最近使用 Least Recently Used )

2allkeys-lru   利用LRU算法移除任何key

3volatile-random 移除設置過過期時間的隨機key

4allkeys-random  移除隨機key

5volatile-ttl   移除即將過期的key(minor TTL)

       6noeviction  noeviction   不移除任何key,只是返回一個寫錯誤。默認選項

l  timeout:當客戶端閑置多少秒后關閉連接,如果設置為0表示關閉該功能。

l  tcp-keepalive:單位是秒,表示將周期性的使用SO_KEEPALIVE檢測客戶端是否還處於健康狀態,避免服務器一直阻塞,官方給出的建議值是300S


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM