系统环境centos7
1.首先安装Development Tools
yum update
yum groupinstall 'Development Tools'
2.进入到usr/local目录下,下载redis压缩包
cd /usr/local
wget https://github.com/antirez/redis/archive/5.0-rc3.tar.gz
3.解压
tar -zxvf 5.0-rc3.tar.gz
4.进入redis-5.0-rc3/deps目录执行以下命令
cd redis-5.0-rc3/deps
make hiredis lua jemalloc linenoise
5.进入到redis-5.0-rc3/src目录下面进行安装
cd src
make install
出现如下说明安装成功
6.修改redis.conf配置文件
vim /usr/local/redis-5.0-rc3/redis.conf
7.修改以下几个参数
bind 127.0.0.1----->>>#bind 127.0.0.1 #注释掉
protected-mode yes --->>>protected-mode no #关闭保护模式
daemonize no --->>daemonize yes # 守护进程模式开启
requirepass foobared --->> requirepass 123456 #redis密码
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
slave-read-only no //去掉只读,后面哨兵模式切换从库需要用
8.启动redis
/usr/local/redis-5.0-rc3/src/redis-server /usr/local/redis-5.0-rc3/redis.conf
9.查看redis相关进程
ps -ef|grep redis
有端口监听说明启动成功。
主从配置
一主两从
将redis-5.0-rc3复制2份改名redis1,redis2.
cp -r redis-5.0-rc3 /usr/local/redis1
cp -r redis-5.0-rc3 /usr/local/redis2
分别修改redis.conf,将端口改为6380,6381,并添加以下配置,6379为主节点
slaveof 127.0.0.1 6379
masterauth your_password(主节点密码)
分别启动
/usr/local/redis1/src/redis-server /usr/local/redis1/redis.conf
/usr/local/redis2/src/redis-server /usr/local/redis2/redis.conf
进入redis,通过INFO replication
命令可以查看到每个实例的状态
redis-cli -h localhost -c -p 6379
INFO replication
可以看到这是主库,连接着两个从库,并有两个从库的地址、端口等信息。
哨兵模式
两种主从模式会存在一个问题,那就是当主机出现故障后,就会发生群龙无首的情况。而哨兵模式就是在后台监控主机是否故障,故障发生时,能够从从机中根据投票数选出一个从机来担任主机,这样就不用我们每次去手动重启主机或者配置从机为主机了。
在配置文件所在的目录下,新建sentinel.conf文件
cd /usr/local/redis/config
touch sentinel.conf
sentinel.conf文件中添加如下配置,注意千万不能写localhost或127.0.0.1,要写具体的ip,不然程序与redis不在一台服务器会连接不上,protected-mode no必须要添加不然也会连接不上。
protected-mode no
daemonize yes
port 26381
sentinel monitor mymaster 192.168.204.133 6379 1
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 1800
其中myMaster是给要监控的主机取的名字,后面是主机地址和端口号,最后面的1表示有多少个sentinel认为主机挂掉了,就进行切换
复制两份sentinel.conf为sentinel2.conf,sentinel3.conf,并修改端口
配置完成后,输入如下命令启动3个哨兵:
cd /usr/local/redis/src
./redis-sentinel ../config/sentinel.conf
./redis-sentinel ../config/sentinel2.conf
./redis-sentinel ../config/sentinel3.conf
可以看到哨兵已经启动