1、第一种方案 redis主从模式搭建(在这种模式下是无法对从进行存储操作的,只能进行读取操作)具体实施步骤如下
我里有有两个服务器,分别是10.112.2.8, 10.112.1.93
查看一下相关的版本:
首先是10.112.2.8服务器的Redis版本
[root@localhost ~]# redis-cli -v
redis-cli 4.0.1
[root@localhost ~]#
另一个是10.112.1.93服务器的版本
[root@localhost ~]# redis-cli -v
redis-cli 5.0.7
[root@localhost ~]#
两个版本是不致的,我用低版本的做为主服务器,高版本的作为从服务器
10.112.2.8的配置修改如下: vi /etc/redis.conf
开启守护进程
################################# GENERAL #####################################
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes
# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
# supervised no - no supervision interaction
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
# supervised auto - detect upstart or systemd method based on
# UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
# They do not enable continuous liveness pings back to your supervisor.
supervised no
从服务器10.112.1.93配置修改如下: vi /etc/redis.conf
找到REPLICATION模块,这个模块下有两个配置分别是replicaof 配置主服务器地址和端口号,masterauth配置主服务器密码
(注:Redis不同的版本这个配置信息有一些不同,可以根据redis.conf中的说明查阅)
################################# REPLICATION #################################
# Master-Replica replication. Use replicaof to make a Redis instance a copy of
# another Redis server. A few things to understand ASAP about Redis replication.
#
# +------------------+ +---------------+
# | Master | ---> | Replica |
# | (receive writes) | | (exact copy) |
# +------------------+ +---------------+
#
# 1) Redis replication is asynchronous, but you can configure a master to
# stop accepting writes if it appears to be not connected with at least
# a given number of replicas.
# 2) Redis replicas are able to perform a partial resynchronization with the
# master if the replication link is lost for a relatively small amount of
# time. You may want to configure the replication backlog size (see the next
# sections of this file) with a sensible value depending on your needs.
# 3) Replication is automatic and does not need user intervention. After a
# network partition replicas automatically try to reconnect to masters
# and resynchronize with them.
#
# replicaof <masterip> <masterport>
replicaof 10.112.2.8 6379
# If the master is password protected (using the "requirepass" configuration
# directive below) it is possible to tell the replica to authenticate before
# starting the replication synchronization process, otherwise the master will
# refuse the replica request.
#
# masterauth <master-password>
masterauth 123456
# When a replica loses its connection with the master, or when the replication
# is still in progress, the replica can act in two different ways:
#
# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will
配置完成后,对从服务器只能进行读取操作,无法进行写稿操作,可以通过replica-read-only no配置允许写入;信息如下:
# You can configure a replica instance to accept writes or not. Writing against
# a replica instance may be useful to store some ephemeral data (because data
# written on a replica will be easily deleted after resync with the master) but
# may also cause problems if clients are writing to it because of a
# misconfiguration.
#
# Since Redis 2.6 by default replicas are read-only.
#
# Note: read only replicas are not designed to be exposed to untrusted clients
# on the internet. It's just a protection layer against misuse of the instance.
# Still a read only replica exports by default all the administrative commands
# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve
# security of read only replicas using 'rename-command' to shadow all the
# administrative / dangerous commands.
replica-read-only no