前言
redis 集群分为一下几种:
【主从模式】:一般情况大多都是读多写少的情况,主从模式可以将读写分离,主库写,从库只负责读取的情况,这从如果任何一个从库宕机的情况,整个集群仍然可以提供工作,缺点就是如果主宕机,集群将无法提供写操作,存在影响用户体验的情况。
【哨兵模式】:是主从模式的升级版本,通过redis哨兵监控集群的整体工作状态,虽然达到了动态处理宕机的情况,但是存在存储瓶颈,限制于当前的主的存储容量
【分片模式】:解决存储容量上线的问题,基于散列插槽的形式提升存储容量,解决海量存储的问题
安装单机版redis
1.从redis官方网站下载redis
Redis官网下载地址
找到当前redis的稳定版本【Stable】
2.将Reids压缩包上传到服务器上并执行解压操作
# 进入到/usr/local/目录
cd /usr/local/
# 创建一个redis 的专属操作文件夹
mkdir redis
# 解压redis压缩包
tar -zxvf redis-6.2.12.tar.gz
# 创建一个存储redis 配置文件的目录
mkdir redis-config
# 把redis 原有的配置文件复制出来一份
cp ./redis-6.2.12/redis.conf ./redis-config/
# 安装并编译redis
cd redis-6.2.12
make & make install
这里记录一下小插曲,我这台服务器是阿里云的服务器,当时在这台机器上测试的时候一切顺利,当我去公司的正式环境安装的时候,出现了一些意外情况,在这里记录一下吧。
redis 的版本和linux的版本虽然没有直接关联,但是redis的编译需要gcc 等编译环境,高版本的redis需要升级gcc的版本,不然编译会报错,像如下图的这些情况。
由于公司的服务器需要VPN以及是无网络的环境,所以升级gcc是一个很麻烦的事情,可以曲线救国,降低一下reids的版本,换成了5.0.14稳定版本,编译顺利进行,当然,还没有去看5版本的和6版本的具体升级了那些功能,如果没有特殊要求的话,这样安装也可以。
看到这个说明已经编译通过了!!!!
3. 将上面的操作分别在多个节点上执行
4.修改节点上的配置文件并启动redis
# 开启后台运行
daemonize no ---> daemonize yes
# 配置可以远程连接
bind 127.0.0.1 ---> 0.0.0.0
# 设置redis 访问密码
requirepass 123123
----------------------------------------------------------------------
# 非必要配置
# 监听的端口号
port: 6379
# 工作目录,默认是当前目录,日志、持久化等文件会保存在这个目录
dir ./
# 数据库数量,默认是16个库 0~15
databases 16
# redis 能够使用的最大内存
maxmemory 512mb
# 日志文件,默认值为空,不记录日志,可以指定日志文件名称
logfile "redis.log"
5.设置开启自启动redis
创建一个redis.service系统文件
vi /etc/systemd/system/redis.service
将以下命令粘贴进去
[Unit]
Description=redis-server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/redis/redis-config/redis.conf
PrivateTmp=true[Install]
WantedBy=multi-user.target
然后重载系统服务
systemctl daemon-reload
设置开启自启动
systemctl enable redis
现在,我们可以用下面这组命令来操作redis了
# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis
配置Redis主从模式
# 在子节点中配置从节点
vi redis.config
# 在第一行上添加如下信息
slaveof 主节点IP 主节点端口号
# 因为主节点开启了密码,所以从节点也需要输入主节点的密码
masterauth 主节点的密码
可以开启一下redis日志,默认是关闭的方便后续的调试
# 连接到主节点,连接redis客户端 redis-cli
redis-cli -p 6379
# info 查看redis 信息
info Replication
以上就完成了主从节点的配置
sentinel 配置文件
# 是当前sentinel 实例的端口号
port 27001
# 声明的IP地址
sentinel announce-ip 192.168.150.101
# 指定节点的信息
# mymaster:主节点名称
# 192.168.150.101 7001 主节点的IP和端口号
# 2:选举master 时quorum 值 超过集群的半数以上,所以当前共三台机器,计算后为2
sentinel monitor mymaster 192.168.150.101 7001 2
# slave 与 master 最长超时时间
sentinel down-after-milliseconds mymaster 5000
# slave 故障恢复的超时时间
sentinel failover-timeout mymaster 60000
# 工作目录
dir "/tmp/s1"