redis架构分为4种
- 单机模式
- 主从模式
- 哨兵模式
- 集群模式(cluster sharding两种)
redis客户端常用连接
Jedis(java io socket),redisson(netty异步),lettuce(Netty 异步)
建议客户端使用 jedis+redisson
准备工作,到redis.io下载redis安装包:
下载地址:https://redis.io/download 使用的是redis高版本 redis6
然后进行解压:tar -xzvf redis-6.0.8.tar
启动命令,根据指定文件启动: ./redis-server …/redis.conf
1.使用jedis连接服务端,提供应用系统访问服务端的功能.
单机模式
配置文件基本上不需要做修改,线上使用的话需要做一些修改。
1.bind改为0.0.0.0
2.logfile以及level
3.requirepass 密码加密
4.持久化开启 两种都开启
save命令,appendonly yes,appendfsync everysec
5.持久化文件保存地址设置dir path
缺点:单机故障,不能保证可用性,单机瓶颈
主从模式
步骤基本上都是一样的,下载jar 进行解压
复制多份,设计一主二从
1.主机配置文件基本不用修改
2.从机需要修改几个参数
bind:机器实际ip
port: 端口根据实际情况决定是否修复
masterauth 主机密码
replica-serve-stale-data yes
replicaof 主机id 端口号
redis主从架构还是比较简单的,一主多从,从节点还是可以有从节点一直延续下去.
主要参考文档:https://www.jianshu.com/p/f0e042b95249
主从同步数据
全量同步
增量同步
高版本的部分同步
故障转移 :主要有两种方式 一人工切换 二哨兵自动切换
人工切换有一些问题,一些主从选择是在客户端实现的,但是一旦主从地址变了,就需要修改本地配置,当然也可以通过配置中心来解决这个问题
模拟场景,一台机器进行的一主二从配置
主节点shutdown之后,客户端请求连接出现如下错误:
redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to ip:port
从节点依然可以正常访问。接下来手动启动主节点,之后正常运行。
另一种情况 将从节点设置为主节点,然后设置主从关系
步骤一:设置一个从节点为主节点 redis-cli -h <从节点ip> -p <从节点端口号> slaveof no one
步骤二:其他从节点修改主节点配置,使用如下命令
slaveof newmasterip:newmasterport
步骤三 :如果原master不需要再成为master,则先重新启动或者先修改配置文件 slaveof newmasterip:newmasterport,如果想重新成为master
master 启动之后 执行如下命令:
config set masterauth ‘admin’
slaveof newmasterip:newmasterp