一.了解redis
redis是一款开源工具,想了解一款开源工具,最直接的方式就是去github上查看此开源项目,看一下官方对redis的介绍
简单翻译一下redis是一款数据结构服务器。提供一组命令去操作多种数据结构。采用server-client的模式通过tcp和一些简单的协议来传输数据。
二.redis下载
可以去redis官网下载想要的版本.
三.redis安装(linux单机版)
1.先安装虚拟机
本人使用VMware
2.将安装包上传到虚拟机,解压安装包
tar -zxvf redis-5.0.8.tar.gz
3.进入redis目录,编译redis
没有安装gcc的先执行 yum install gcc 安装gcc
然后执行make命令进行编译
4.make install 进行安装
5.reids 默认安装路径 /usr/local/bin
6. 启动redis
服务
redis-server --port 6379
客户端
./redis-cli
7.redis相关文件
服务器启动命令
redis-server
客户端启动命令
redis-cli
核心配置文件
redis.conf
RDB文件检查工具(快照持久化文件)
redis-check-dump
AOF文件修复工具
redis-check-aof
8.修改配置文件
四.哨兵模式部署
在一台服务器上部署6个实例来模拟哨兵模式,3个redis实例1主2从,3个哨兵实例
分为两步:
1.配置主从
准备三分配置文件
先配置主节点,添加配置如下
port 6001
daemonize yes
pidfile /var/run/redis-6001.pid
logfile "6001.log"
dir ./data6001
再配置从节点
port 6002
daemonize yes
pidfile /var/run/redis-6002.pid
logfile "6002.log"
dir ./data6002
slaveof 127.0.0.1 6001
先启动主节点,再启动从节点
查看redis进程信息
查看主从节点配置信息
分别连接主从节点客户端,在客户端使用info replication命令查看角色信息
2.配置哨兵
修改配置文件sentinel6001.conf如下
port 26379
daemonize yes
pidfile /var/run/redis-sentinel26379.pid
logfile "26379.log"
protected-mode no
sentinel monitor mymaster 127.0.0.1 6001 2
sentinel down-after-milliseconds mymaster 3000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 18000
修改另外两个配置文件
port 26380
daemonize yes
pidfile /var/run/redis-sentinel26380.pid
logfile "26380.log"
protected-mode no
sentinel monitor mymaster 127.0.0.1 6001 2
sentinel down-after-milliseconds mymaster 3000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 18000
启动哨兵
3.查看集群信息
客户端连接到26379
使用info sentinel 查看哨兵配置信息
模拟故障
重新选出master
五.分片集群部署
模拟一个三主三从的分片集群 之前有了6001,6002,6003三个端口,我们再加6004,6005,6006三个端口来做从节点,并将之前的6001,6002,6003的数据文件夹清空,不然无法创建集群
1.修改配置文件加上如下内容开启集群即可
# 开启集群功能
cluster-enabled yes
# 集群的配置文件名称,不需要我们创建,由redis自己维护
cluster-config-file nodes-6001.conf
# 节点心跳失败的超时时间
cluster-node-timeout 5000
将配置文件复制为6份,修改不同的端口
运行6个实例,查看运行情况
使用命令创建集群
测试一下集群是否可用 命令记得加-c 参数
模拟故障: kill掉6001,redis自动重新选举6004为新的master
重启6001后6001自动变为slave
注意配置文件中 protected-mode 默认为yes 只能本机访问redis服务,想从其他机器访问redis服务可以改为no 但不建议,推荐使用bind配置地址,或者设置密码解决。