導航:首頁 > 操作系統 > redislinux集群配置

redislinux集群配置

發布時間:2023-07-22 01:46:46

linux下安裝配置redis詳細教程,並配置哨兵模式

redis版本為redis-3.2.12,使用工具將安裝包上傳到data目錄。

在data目錄下創建文件夾redis,將redis安裝在此目錄。

第一步:解壓

第二步:安裝,PREFIX=/data/redis用來設置安裝目錄。

到此,redis已經安裝完成,剩下就是配置和啟動服務。

進入redis目錄, 創建配置文件conf、日誌logs、資料庫mp、進程號pid四個目錄,用來存放對應的文件,這四個目錄也可以存放在其他文件夾,只要與配置文件中的配置一致即可,否則在啟動服務時會報錯。 其中bin目錄就是redis安裝成功後的一些命令文件。

redis服務配置一主二從,哨兵模式。注意:如果在實際開發中用不到哨兵模式,redis服務配置一主一從即可。

主Redis配置:redis_6379.conf

從Redis配置,redis_6380.conf和redis_6381.conf,與主Redis配置基本上一樣,不一樣的地方在於 埠、資料庫、日誌、pid文件名稱 ,都以6380或6381為標志, 最重要的地方是建立主從關系和同步驗證。

注意: 對只使用redis服務 ,只需要在主Redis裡面配置requirepass,在從Redis裡面配置masterauth,密碼保持一致,密碼盡可能復雜,以免被攻擊破解。

注意: 對只使用redis服務 ,如果從Redis也有必要加入訪問驗證,也可以設置requirepass,而且密碼可以與主Redis密碼不同。

將配置文件放置到/data/redis/conf目錄下,然後就可以啟動服務了。

啟動服務要按照主從順序依次啟動。

查看服務啟動情況:

也可以通過查看日誌文件來確認服務是否正常啟動。

通過客戶端登錄Redis驗證數據同步情況:

主Redis登錄驗證,設置數據:

從Redis登錄,獲取數據:從Redis並沒有設置密碼,所以無需驗證就可以操作。

配置哨兵模式:

Redis Sentinel集群通常由3到5個節點組成,如果個別節點掛了,集群還可以正常運作。Sentinel負責監控Redis集群的 健康 情況。

如果主Redis掛掉,Sentinel集群會通過投票選擇一個新的主Redis。 當原來的主Redis恢復時,它會被當做新的主Redis的從Redis重新加入Redis集群。

設置連接master和slave的密碼,需要注意的是sentinel不能分別為master和slave設置不同的密碼,因此master和slave的密碼必須設置相同。也就是說主Redis和從Redis都必須設置requirepass和masterauth,而且密碼必須相同。

sentinel.conf配置信息:

將該配置文件放置到/data/redis/conf目錄下,啟動sentinel服務:

驗證sentinel是否起作用,可以手工shutdown掉主Redis。

這時從Redis想要訪問主Redis同步數據就會提示錯誤信息:

sentinel在監測到主Redis宕機之後,通過選舉,將一個從Redis選定為新的主Redis。通過查看sentinel日誌可以發現,選定6380為新的主Redis,同時將另外兩個Redis作為從Redis。

注意:選定6380為主Redis後,所有的配置文件都會被修改,主要是重新建立主從關系。

6379會新增:slaveof 127.0.0.1 6380

6380會刪掉:slaveof 127.0.0.1 6379

6381會修改:slaveof 127.0.0.1 6380

由於6379服務已經關掉,所以雖然sentinel將6379作為6380的從服務,但是沒有真正的建立。

重新啟動6379服務,這時sentinel會重建建立一次主從關系:

❷ linux 的環境搭建(二)--redis單機環境、生產環境、集群環境的搭建

一、目錄
1、工具
2、安裝tcl
3、安裝單機版redis
4、把redis設置為daemon進程,每次系統啟動,redis進程一起啟動
5、安裝redis cluster
二、工具
2.1、tcl8.6.1-src.tar.gz
2.2、ruby-2.3.1.tar.gz
2.3、redis-4.1.1.gem
2.4、redis-3.2.8.tar.gz
2.5、openssl-1.0.2r.tar.gz
三、安裝tcl(安裝redis必須先要安裝tcl)

3.1、把tcl8.6.1-src.tar.gz通過WinSCP上傳到虛擬機中的/usr/local目錄下

四、安裝單機版redis
4.1、把redis-3.2.8.tar.gz通過WinSCP上傳到虛擬機中的/usr/local目錄下

4.2、依次運行如下命令:
tar -zxvf redis-3.2.8.tar.gz 解壓文件
cd redis-3.2.8
make && make test && make install

五、把redis設置為daemon進程,每次系統啟動,redis進程一起啟動
5.1、將redis的utils目錄下的redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名為redis_6379,6379是我們希望這個redis實例監聽的埠號

5.2、修改redis_6379腳本的第6行的REDISPORT,設置為相同的埠號(默認就是6379)

protected-mode no 取消保護模式,保護模式只能127.0.0.1訪問
daemonize yes 讓redis以daemon進程運行
pidfile /var/run/redis_6379.pid 設置redis的pid文件位置
bind 192.168.3.110
port 6379 設置redis的監聽埠號
dir /var/redis/6379 設置持久化文件的存儲位置
logfile /var/log/redis/6379.log 設置日誌文件位置
5.6、啟動redis,依次執行:
cd /etc/init.d,
chmod 777 redis_6379,賦讀寫執行的許可權(chmod -R 777 * 是遞歸把該目錄下的所有文件和其子文件全部賦許可權)
./redis_6379 start 啟動

5.7、確認redis進程是否啟動,ps -ef | grep redis

5.8、讓redis跟隨系統啟動自動啟動

5.9、重啟系統,不手動啟動redis,直接連接redis,可以連接上,表示配置成功

此時一個單機版的redis的生產環境已經搭建好了,每次伺服器重啟,redis都會自動的啟動

六、安裝redis cluster
(redis cluster集群,要求至少3個master,去組成一個高可用,健壯的分布式的集群,每個master都建議至少給一個slave,3個master,3個slave)
6.1、前提,我在其它機器上啟動了六個redis(安裝步驟都如下)
2.2、創建三個目錄:
mkdir -p /etc/redis-cluster 存放集群配置信息,自動生成配置
mkdir -p /var/log/redis redis日誌
mkdir -p /var/redis/7001 存放redis的rdb文件和aof文件
6.3、將redis的utils目錄下的redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名為redis_7001,7001是我們希望這個redis實例監聽的埠號,並修改redis_7001配置文件中的REDISPORT=7001
6.4、修改/etc/redis/7001.conf中的部分配置為生產環境

6.5、完成了一個redis環境的配置,依次再配置其餘五個,分別為7002、7003、7004、7005、7006,每個啟動腳本內,都修改對應的埠號

6.6、啟動6個redis實例
6.7、創建集群(需要安裝ruby、rubygems)

上述命令在部分機器上是可以直接運行完成,成功安裝的,但在部分機器上運行第三條命令時會提示ruby版本太低、openssl找不到的問題,下面依次解決這兩個問題:

6.8、再次運行gem install redis命令,報出兩個錯誤

6.9、再次運行gem install redis命令,報出一個錯誤

6.10、再次運行gem install redis命令,報出一個錯誤

6.11、再次運行gem install redis命令
[root@ceshi01 local]# gem install redis
Successfully installed redis-4.1.1
Parsing documentation for redis-4.1.1
Done installing documentation for redis after 1 seconds
WARNING: Unable to pull data from ' https://rubygems.org/' : SSL_connect returned=1 errno=0 state=error: certificate verify failed ( https://api.rubygems.org/specs.4.8.gz )
1 gem installed
運行成功

此時Redis安裝好,此三個工具也安裝好了,這時我們來做一個Redis集群測試,在一台伺服器中創建了6個Redis實例,開啟6個Redis服務
redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006

[root@eshop-cache02 init.d]# redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006

此時一個redis集群環境就已經搭建好了,可以通過redis-trib.rb check 192.168.3.105:7003命令查看集群幾點的信息

[root@eshop-cache02 init.d]# redis-trib.rb check 192.168.3.105:7004

redis cluster的優點:讀寫分離+高可用+多master
讀寫分離:每個master都有一個slave
高可用:master宕機,slave自動被切換過去
多master:橫向擴容支持更大數據量

❸ linux上怎麼配置redis的aof持久化

Redis 持久化和配置文件
Reids 持久化
Redis提供了兩種持久化的方式,分別是RDB(Redis DataBase)和AOF(Append Only File)。
RDB,簡而言之,就是在不同的時間點,將redis存儲的數據生成快照並存儲到磁碟等介質上。
AOF,則是換了一個角度來實現持久化,那就是將redis執行過的所有寫指令記錄下來,在下次redis重新啟動時,只要把這些寫指令從前到後再重復執行一遍,就可以實現數據恢復了。
其實RDB和AOF兩種方式也可以同時使用,在這種情況下,如果redis重啟的話,則會優先採用AOF方式來進行數據恢復,這是因為AOF方式的數據恢復完整度更高。
如果你沒有數據持久化的需求,也完全可以關閉RDB和AOF方式,這樣的話,redis將變成一個純內存資料庫,就像memcache一樣。
redis配置文件
daemonize no # 默認情況下,redis並不是以daemon形式來運行的。通過daemonize配置項可以控制redis的運行形式
pidfile /path/to/redis.pid #當以daemon形式運行時,redis會生成一個pid文件,默認會生成在/var/run/redis.pid
bind 192.168.1.2 10.8.4.2 # 指定綁定的ip,可以有多個
port 6379 #指定監聽埠
unixsocket /tmp/redis.sock #也可以監聽socket
unixsocketperm 755 #當監聽socket時可以指定許可權為755
timeout 0 #當一個redis-client一直沒有請求發向server端,那麼server端有權主動關閉這個連接,可以通過timeout來設置「空閑超時時限」,0表示永不關閉。
Redis通用配置
tcp-keepalive0 #TCP連接保活策略,可以通過tcp-keepalive配置項來進行設置,單位為秒,假如設置為60秒,則server端會每60秒向連接空閑的客戶端發起一次ACK請求,以檢查客戶端是否已經掛掉,對於無響應的客戶端則會關閉其連接。如果設置為0,則不會進行保活檢測。
loglevelnotice #日誌級別,有四種debug, verbose, notice, warning
logfile「」 #定義日誌路徑,
syslog-identredis #如果希望日誌列印到syslog中,通過syslog-enabled來控制。另外,syslog-ident還可以讓你指定syslog里的日誌標志。
syslog-facility local0 #指定syslog的設備,可以是USER或者local0-local7
databases 16 #設置資料庫的總數量
Redis快照配置(rdb持久化)
save 900 1 #表示每15分鍾且至少有1個key改變,就觸發一次持久化
save 300 10 #表示每5分鍾且至少有10個key改變,就觸發一次持久化
save 60 10000 #表示每60秒至少有10000個key改變,就觸發一次持久
save 「」 #這樣可以禁用rdb持久化
stop-writes-on-bgsave-error yes #rdb持久化寫入磁碟避免不了會出現失敗的情況,默認一旦出現失敗,redis會馬上停止寫操作。如果你覺得無所謂,那就可以使用該選項關閉這個功能。
rdbcompressionyes #是否要壓縮
rdbchecksumyes #是否進行數據校驗
dbfilenamemp.rdb #定義快照文件的名字
dir ./ #定義快照文件儲存路勁
Redis安全相關配置
requirepassaminglinux
#設置redis-server的密碼
rename-command CONFIG aminglinux.config
#將CONFIG命令更名為aminglinux.config,這樣可以避免誤操作,但如果使用了AOF持久化,建議不要啟用該功能
rename-command CONFIG 「」
#也可以後面定義為空,這樣就禁掉了該CONFIG命令
Redis限制相關配置
maxclients10000 #限制最大客戶端連接數
maxmemory<bytes> #設定最大內存使用數,單位是byte
maxmemory-policy volatile-lru#指定內存移除規則
maxmemory-samples 3 #LRU演算法和最小TTL演算法都並非是精確的演算法,而是估算值。所以你可以設置樣本的大小。假如redis默認會檢查三個key並選擇其中LRU的那個,那麼你可以改變這個key樣本的數量。
Redis AOF持久化相關配置
appendonlyno #如果是no,則開啟aof持久化
appendfilename「appendonly.aof」 #指定aof文件名字
appendfsynceverysec#指定fsync()調用模式,有三種no(不調用fsync),always(每次寫都會調用fsync),everysec(每秒鍾調用一次fsync)。第一種最快,第二種數據最安全,但性能會差一些,第三種為這種方案,默認為第三種。
no-appendfsync-on-rewrite no #使用no,可以避免當寫入量非常大時的磁碟io阻塞
auto-aof-rewrite-percentage 10 #規定什麼情況下會觸發aof重寫。該值為一個比例,10表示當aof文件增幅達到10%時則會觸發重寫機制。
auto-aof-rewrite-min-size 64mb #重寫會有一個條件,就是不能低於64Mb
Redis 慢日誌相關配置
針對慢日誌,你可以設置兩個參數,一個是執行時長,單位是微秒,另一個是慢日誌的長度。當一個新的命令被寫入日誌時,最老的一條會從命令日誌隊列中被移除。

閱讀全文

與redislinux集群配置相關的資料

熱點內容
數控車床如何進行自動編程 瀏覽:8
app網課視頻怎麼拷貝到電腦上 瀏覽:708
安卓國服光遇小王子季節什麼時候結束 瀏覽:537
恢復的音樂在哪個文件夾 瀏覽:595
qq傳輸文件夾壓縮包 瀏覽:911
sha1加密演算法java 瀏覽:232
單片機ds1302程序 瀏覽:738
杜比壓縮開還是關怎樣判斷 瀏覽:366
對象類型轉換java編譯和運行 瀏覽:284
行政命令是什麼 瀏覽:371
android調用系統郵件 瀏覽:33
測溫軟體app是如何實現的 瀏覽:585
江蘇伺服器機房按需定製雲主機 瀏覽:639
c程序員筆試 瀏覽:694
excel怎麼引用統一文件夾 瀏覽:249
怎麼把微信抖音加密 瀏覽:304
android滑動進度條 瀏覽:836
javagmt轉換 瀏覽:827
linux查看snmp 瀏覽:26
ug80車床編程 瀏覽:518