[Redis]-建立多個Redis Instance

Redis建置學習心得

由於在原先架構中, 同時會有三套Redis做為相互master-slavesentinel monitor, 讓三個AP可以同時運用各自的Redis而不互相影響, 因此, 同一台伺服器至少會有四個Redis Instance.

 

要同時有多個Redis Instance在一台機器上時, 基本上不用再裝相同的程式, 只需要把安裝操作中, 開始建立configure檔案的步驟向下做下去即可. 以本例就是建立6380 port192.168.127.101~103, 然後打上第二組replication. 但要比較注意的是, 所有預設放在6379 port的設定都要改為6380 (或是有指定的port).

 

1.      Redis目錄中的redis.conf複製一份到 /etc/redis/路徑下, 並且加上之後要使用的port number做為檔名

# cp /usr/redis-3.2.9/redis.conf /etc/redis/6380.conf

 

2.      同時建立一個對應的port路徑在 /var/redis

# mkdir /var/redis/6380

 

3.      修改剛才複製出來的/etc/redis/6379.conf 檔案內容

# vi /etc/redis/6380.conf

 

• 將 bind <IP> 的值修改為 實體IP位置, 不使用127.0.0.1 (未來實作不會在同一台)

port改為6380

• 將 daemonize 的值修改為 yes

• 將 pidfile 的值修改為 /var/run/redis_6380.pid

• 將 logfile 的值修改為 /var/log/redis_6380.log

• 將 dir 的值修改為 /var/redis/6380

 

4.      開啟防火牆在tcp 6380 port

# firewall-cmd --permanent --add-port=6380/tcp

# firewall-cmd --reload

 

5.      <REDISPATH>/utils/redis_init_script 複製到 /etc/init.d/<file_name> 統一管理, 特別是如果機器上有多個Redis Instance (後續會實做多個instance)

# cp /usr/redis-3.2.9/utils/redis_init_script /etc/init.d/redis_6380

 

6.      修改複製出來的檔案內容, 原則上仍以RedisMaster為例

# vi /etc/init.d/redis_6380

 

以下這幾行都要指定到正確的檔案位置, 預設的是舊版的, 所以會找不到檔案……與REDISPORT要給對PORT

 

REDISPORT=6380

EXEC=/usr/local/bin/redis-server

CLIEXEC=/usr/local/bin/redis-cli

 

PIDFILE=/var/run/redis_${REDISPORT}.pid

CONF="/etc/redis/${REDISPORT}.conf"

 

7.      啟動Redis, 語法如下

# /etc/init.d/redis_6380 start

 

8.      驗證, 看看服務是啟動的. 下列語法如果回應PONG就表示redis目前已啟動服務.

# redis-cli -h 192.168.127.101 -p 6380 ping

PONG

 

9.      測試重啟服務

# redis-cli -h 192.168.127.101 -p 6380 save

# redis-cli -h 192.168.127.101 -p 6380 shutdown

 

啟動Redis, 語法如下

# /etc/init.d/redis_6380 start

 

10. 設定開機時自動啟動redis, 在此使用CentOS 7之後的新功能, 註冊service的方式, 舊版的則請參考附註

 

建立service相案給redis (port 6380)

# vi /lib/systemd/system/redis_6380.service

 

輸入下列內容到檔案裡, 然後存檔離開 (copy的話用附件檔)

[Unit]

Description=Redis on port 6380

After=network.target

 

[Service]

Type=forking

ExecStart=/usr/local/bin/redis-server /etc/redis/6380.conf

ExecStop=/usr/local/bin/redis-cli -p 6380 shutdown

 

[Install]

WantedBy=multi-user.target

 

註冊並啟動 Redis 服務

設定Service:

# systemctl daemon-reload

# systemctl enable redis_6380.service

Created symlink from /etc/systemd/system/multi-user.target.wants/redis_6380.service to /usr/lib/systemd/system/redis_6380.service.

 

 

接著就可以把第二套 (PORT 6380) 與第三套 (PORT 6381) Redis建立起來, 並設定好Replication, 其他設定都和在PORT 6379上相同, 只是遇上了PORT要指定時要改變一下, 就不再重複說明了.