[Redis] 部署Redis及集群、哨兵应用

首先准备redis的安装包:redis-3.0.4.tar.gz

如果安装过程中遇到错误,可以参考以下内容:
[Linux] 安装软件时libc.so.6()错误
[Linux] 安装软件时make gcc找不到错误

下面是安装步骤

第一步:

#创建redis目录#
mkdir /usr/redis

第二步:

#解压文件至/usr/redis#
tar -xzvf redis -C /usr/redis

第三步:

#进入redis目录,make#
cd /usr/redis/redis-3.0.4/
在redis目录下执行make命令
make
mkdir /usr/redis/redis
make PREFIX=/usr/redis/redis install

第四步:

#拷贝哨兵脚本(不需要可以省略)

cd /usr/redis/redis-3.0.4/src/
cp redis-sentinel /usr/redis/redis

第五步:

配置环境变量

vim ~/.bash_profile

export REDIS_HOME=/usr/redis/redis

export PATH=$PATH:$REDIS_HOME/bin

source ~/.bash_profile

1

第六步:

//将redis做成后台服务

cd /usr/redis/redis-3.0.4/utils/

./install_server.sh

//全部回车即可

//修改服务名称

mv /etc/init.d/redis_6379 /etc/init.d/redisd

service redisd restart

//查看进程6379

ps -aux | grep 6379

redis-cli -p 6379

至此,redis安装完毕。


Redis集群主从复制

首先我们启动三个Redis

#创建三个conf文件
cd /etc/redis/
cp 6379.conf 6380.conf
cp 6379.conf 6381.conf

#修改端口
vim 6380.conf
port 6380

vim 6381.conf
port 6381

#启动
redis-server /etc/redis/6379.conf --port 6379
redis-server /etc/redis/6380.conf --port 6380
redis-server /etc/redis/6381.conf --port 6381

主从复制

#将6379为主,6380与6381为从

$6380> slaveof Hadoop1 6379
$6381> slaveof Hadoop1 6379

#当然,我们可以不通过命令来切换主从,通过Redis配置文件也可以,这里不做过多详解

注:从节点恢复自身身份

$6380> slaveof NO ONE

至此,主从复制就完成了,但是还存在问题,假设我们的主节点挂掉了,整个Redis集群就不完整了,所以我们下面要使用哨兵来解决这个问题


哨兵

我们首先启动三个redis服务,如果与上面那样启动过一次,就不用再次启动了,跳过此步


redis-server /etc/redis/6379.conf --port 6379

redis-server /etc/redis/6380.conf --port 6380

redis-server /etc/redis/6381.conf --port 6381

配置主从

#将6379为主,6380与6381为从

$6380> slaveof Hadoop1 6379
$6381> slaveof Hadoop1 6379

编辑哨兵配置文件

cd /usr/redis/redis
vim sentinel.conf

port 26379
sentinel monitor mymaster Hadoop1 6379 1 #1代表投票超过1,说明主节点挂掉
daemonize yes  #以后端运行

启动哨兵

redis-sentinel sentinel.conf 

这样我们就实现了通过哨兵实现主从切换,解决了单点故障,但是当哨兵挂掉时,又存在新的问题


哨兵集群

这里我们一共准备三份sentinel.conf的配置文件

cd /usr/redis/redis

cp sentinel.conf sentinel_6380.conf

cp sentinel.conf sentinel_6381.conf

修改三个配置文件

vim sentinel.conf

port 26380
sentinel monitor mymaster 192.168.211.128 6379 2
#daemonize yes



vim sentinel_6380.conf

port 26380
sentinel monitor mymaster 192.168.211.128 6379 2 
#daemonize yes



vim sentinel_6381.conf

port 26381
sentinel monitor mymaster 192.168.211.128 6379 2
#daemonize yes

#注:上面的配置中 6379 1 修改为了 6379 2 , 意味着投票过2票 , 代表主节点挂掉

这时我们分别连接三个Redis

redis-cli -p 6379

redis-cli -p 6380

redis-cli -p 6381

#全部恢复成主节点,随从将6379变为主,6380与6381为从
$6379> slaveof NO ONE
$6380> slaveof NO ONE
$6381> slaveof NO ONE

$6380> slaveof Hadoop1 6379
$6381> slaveof Hadoop1 6379

启动哨兵集群

redis-sentinel sentinel.conf

redis-sentinel sentinel_6380.conf

redis-sentinel sentinel_6381.conf

这时我们 kill 6379

1

观察Redis日志,我们可以发现,随后将6381切换为主节点,6380为从节点


补充

由于本人是在单机器上完成的所有测试工作,所以启动Redis的时候一定要使用三个不同的配置文件 6379.conf , 6380.conf , 6381.conf

启动redis时,下面这种方式会有问题,例如

redis-server /etc/redis/6379.conf --port 6379

redis-server /etc/redis/6379.conf --port 6380

redis-server /etc/redis/6379.conf --port 6381

因为在Redis的哨兵机制中,Redis会修改配置文件,若公用一个配置文件6379.conf , 整个Redis集群和哨兵集群在重启后会无法选举Master,造成故障


至此,整个Redis就介绍完了

猜你喜欢

转载自blog.csdn.net/Konaji/article/details/70046488
今日推荐