1. 程式人生 > >安裝配置redis主從同步

安裝配置redis主從同步

redis

172.31.31.167 redis master

172.31.31.168 redis slave


yum -y install make gcc gcc-c++

tar -zxf redis-3.2.11.tar.gz && cd redis-3.2.11

make && make install

mkdir -p /usr/local/redis/conf

cp -pr /usr/local/bin /usr/local/redis

cp redis.conf /usr/local/redis/conf


配置文件修改如下內容:

daemonize yes

bind 172.31.31.167 7001

port 7001

pidfile /var/run/redis-7001.pid

logfile /data/redis/logs/redis-7001.log

dir /data/redis/data/7001/

maxmemory 2GB


如果是redis主從同步,redis slave請修改如下內容:

slaveof masterip masterport

slaveof 172.31.31.167 7001


啟動redis:

/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf


登錄redis,通過info命令查看master、slave狀態

cd /usr/local/redis/bin

./redis-cli


redis slave只是只讀數據庫而不能插入數據,如需要寫的話把redis slave配置文件中slave-read-only yes改為slave-read-only no,重啟服務即可.

也可以直接使用config命令更改。

config get slave-read-only //查詢

config set slave-read-only no //設置


slave在線手工切換為master

config get slaveof //查詢

slaveof no one //設置為master

slaveof 新masterip 新masterport //如果有的話需要設定


原master redis恢復要重新切換回去的話:

將現在的主redis的數據進行保存(save指令)

將現在的主redis根目錄下dump.rdb文件拷貝覆蓋到原來主redis的根目錄

啟動原來的主redis

在現在的主redis中切換 SLAVEOF 舊masterip 舊masterport

在其他的slave節點切換 SLAVEOF 舊masterip 舊masterport


Redis-Sentinel高可用性(HA):

sentinel monitor <master-name> <ip> <redis-port> <quorum>

sentinel down-after-milliseconds <master-name> <milliseconds>

sentinel failover-timeout <master-name> <milliseconds>

sentinel parallel-syncs <master-name> <numslaves>


./redis-cli -p 26379

info sentinel //查看哨兵信息

sentinel master mymaster //查看master的狀態

SENTINEL slaves mymaster //查看salves的狀態

SENTINEL sentinels mymaster //查看哨兵的狀態

SENTINEL get-master-addr-by-name mymaster //獲取當前master的地址


/usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/sentinel.conf

sentinel集群中各個sentinel都互相連接彼此來檢查對方的可用性以及互相發送消息。但是不用在任何一個sentinel配置任何其它的sentinel的節點。因為sentinel利用了master的發布/訂閱機制去自動發現其它也監控了統一master的sentinel節點。



刪除當前數據庫中的所有Key

flushdb


刪除所有數據庫中的key

flushall


刪除某一個key

del key_name


創建key並賦值

SET key_name key_value


獲取所有key

key *


獲取某個key的值

get key_name



參考:

https://www.kancloud.cn/digest/redis330/162446

https://www.cnblogs.com/knowledgesea/p/6567718.html


安裝配置redis主從同步