1. 先安装C语言环境 有的可以跳过
yum install -y gcc-c++ automake autoconf libtool make tcl
下载linux 版本的redis 我的版本为7.0.10
1. 先安装C语言环境 有的可以跳过
```
yum install -y gcc-c++ automake autoconf libtool make tcl
```
2. 下载linux 版本的redis 我的版本为7.0.10
3. 解压redis
```
tar vxzf redis-7.0.10.tar.gz
```
4. 编译
```
make
```
5. 安装 安装目录为
```
make install PREFIX=/usr/local/redis
```
6. 拷贝需要的配置文件
```
cp ./redis.conf /usr/local/redis/bin/redis6379.conf
```
7. 修改配置文件
```
注释 #bind 127.0.0.1
修改保护模式关闭 protected-mode no
这里的port 不做修改 默认6379
后台运行 daemonize yes
```
8. 复制修改好的redis6379.conf 两份 分别命名为6380 6381
```
vim 修改 这两个配置文件
6379 改为6380 和6381
pidfile 根据端口修改 /usr/local/redis/pidfile
dbfilename 记得区分
logfile 等等根据需要的自行配置
```
9. 启动redis
```
./redis-server redis6379.conf
./redis-server redis6380.conf
./redis-server redis6381.conf
```
10. 这里我们可以写成sh文件快速启动vim startup.sh
```
cd /usr/local/redis/bin
./redis-server redis6379.conf
./redis-server redis6380.conf
./redis-server redis6381.conf
chmod a+x startup.sh #添加权限
ps aux|grep redis #查看redis的进程
```
11. 如需开启aof 修改
```
appendonly yes
appendfilename "appendonly.aof" //可以根据端口进行区分
```
12. 主从复制
```
这里我们先设置从节点 跟随跟随主节点
redis-cli -p 6380
slaveof ip 端口 # 这里的主节点ip和从节点都是安装在同一台虚拟机上 因此ip一致
info replication #查看详细信息
```
```
redis -cli p 6381
slaveof ip 端口 #这里的主节点ip和从节点都是安装在同一台虚拟机上 因此ip一致
info replication #查看详细信息
```
```
此时我们在启动主节点
redis-cli -p 6379
info replication #查看详细信息 我们可以看到有两个从节点 连接到主节点上
```
13. 们操作主节点 从节点会复制主节点内容 但是一旦主节点宕机 则整个集群无法工作 因为无主节点工作 因此为了解决这一问题 sentinel 哨兵机制 会在奇数台节点中选举一台为主节点 使集群正常工作
14. 拷贝之前的redis 文件中的sentinel.conf文件
```
cp ./sentinel /usr/local/redis/bin/sentinel-26379.conf
修改哨兵文件
protected-mode no
daemonize yes
port 26379
sentinel monitor mymaster 主节点的ip地址 6379 2
#修改完成之后 我们复制修改好的sentinel-26379.conf 为sentinel-26380.conf和inel-26381.conf 然后修改里面的端口号即可
```
然后修改里面的端口号即可
15. 个哨兵都会去监控主节点的健康信息 当主节点宕机 当超过2个哨兵认为主节点宕机后,才会进行选主 在剩下的两个从节点中选取 1个为主节点此时我们开启三个哨兵
```
vi run-sentinel.sh
cd /usr/local/redis/
./redis-sentinel sentinel-26379.conf
./redis-sentinel sentinel-26380.conf
./redis-sentinel sentinel-26381.conf
chmod 755 run-sentinel.sh
./run-sentinel.sh
ps -aux |grep redis 查看redis进程
```