redis集群与主从配置
- redis安装-redis集群管理
- redis主从复制(读写分离)-redis集群管理
- redis主从从架构搭建-redis集群管理
- redis从库只读设置-redis集群管理
- redis主从复制的原理-redis集群管理
- redis sentinel(哨兵) 配置详解-redis集群管理
- redis sentinel.conf详解-redis集群管理
- redis 集群环境搭建-redis集群管理
- redis集群插槽分配-redis集群管理
- redis新增集群节点-redis集群管理
- redis删除集群节点-redis集群管理
- redis集群出现宕机没法访问-redis集群管理
- redis 集群使用主从复制架构-redis集群管理
redis 基础教程
- Redis概述
- 基于linux下redis安装与配置
- 基于window安装redis
- Redis配置文件详解
- 通过redis客户端查看和设置配置
- Redis 客户端连接、密码验证、连接数设置
- 使用info命令获取 redis 服务详细信息
- Redis Desktop Manager客户端使用教程
redis 数据类型
Redis 高级教程
知识点
相关文章
更多最近更新
更多redis主从复制(读写分离)-redis集群管理
2019-03-18 00:08|来源: 网路
主从复制的好处:
1、 避免redis单点故障
2、 构建读写分离架构,满足读多写少的应用场景
主从架构
[root@master redis]# mkdir redis-master-slave
创建6380、6381、6382三个目录,分别将安装目录下的redis.conf拷贝到这三个目录下(我直接从单机安装那里拷贝过来,因为我那里已人改过daemonize了)
[root@master redis]# cd redis-master-slave/
[root@master redis-master-slave]# mkdir 6380
[root@master redis-master-slave]# mkdir 6381
[root@master redis-master-slave]# mkdir 6382
[root@master redis-master-slave]# cp /opt/redis/redis-single/redis.conf 6380/
[root@master redis-master-slave]# cp /opt/redis/redis-single/redis.conf 6381/
[root@master redis-master-slave]# cp /opt/redis/redis-single/redis.conf 6382/
分别进入这三个目录,修改配置文件redis.conf,将端口分别设置为:6380(Master)、6381(Slave)、6382(Slave)。同时要设置pidfile文件为不同的路径。
以6380为例:
[root@master redis-master-slave]# vim 6380/redis.conf
...... port 6380 ...... pidfile /var/run/redis_6380.pid ...... |
设置主从关系
在redis中设置主从有2种方式:
1、 在redis.conf中设置slaveof
a) slaveof <masterip> <masterport>
2、 使用redis-cli客户端连接到redis服务,执行slaveof命令
a) slaveof <masterip> <masterport>
第2种方式在重启后将失去主从复制关系。
本测试中使用第1种方式
[root@master redis-master-slave]# vim 6381/redis.conf
slaveof 127.0.0.1 6380
[root@master redis-master-slave]# vim 6382/redis.conf
slaveof 127.0.0.1 6380
分别启动三个redis实例:
[root@master redis-master-slave]# /usr/local/bin/redis-server /opt/redis/redis-master-slave/6380/redis.conf
[root@master redis-master-slave]# /usr/local/bin/redis-server /opt/redis/redis-master-slave/6381/redis.conf
[root@master redis-master-slave]# /usr/local/bin/redis-server /opt/redis/redis-master-slave/6382/redis.conf
查看路由信息
在主节点查
[root@master hadoop]# /usr/local/bin/redis-cli -p 6380
127.0.0.1:6380> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6381,state=online,offset=1,lag=1
slave1:ip=127.0.0.1,port=6382,state=online,offset=1,lag=1
master_repl_offset:1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:0
在从节点查
[root@master hadoop]# /usr/local/bin/redis-cli -p 6381
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:10
master_sync_in_progress:0
slave_repl_offset:141
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
[root@master hadoop]# /usr/local/bin/redis-cli -p 6382
127.0.0.1:6382> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:4
master_sync_in_progress:0
slave_repl_offset:155
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
测试主从
在主库写入数据
127.0.0.1:6380> set k1 123
OK
127.0.0.1:6380> get k1
"123"
在从库读取数据
127.0.0.1:6381> get k1
"123"
127.0.0.1:6382> get k1
"123"
书生参考网络整理
redis知识点
redis快速入门
reids常用命令
redis数据结构
java_API_客户端
Jedis
Tlcache
redis_持久化
AOF
RDB
发布订阅(pub/sub)
redis_事件
redis事务
redis通讯协议
RESP(Redis Serialization Protocol)
redis高可用
redis哨兵
监控(Monitoring) 提醒(Notification) 自动故障迁移(Automatic failover)
redis主从复制
-
- 主从复制
- 从从复制
-
- slave向master发送sync命令;
- master开启子进程执行bgsave写入rdb文件;
- master发送缓存和RDB文件给slave;
- master发送数据发送给slave完成复制;
redis集群(Redis_Cluster)
相关问答
更多-
MySQL主从复制读写分离如何提高从库性能[2021-11-13]
读写分离顾名思义,读和写是分开的。一般数据库压力在于读,搭建主从可以让主库写,从库读,可以减少I/O竞争,提高性能。主要概括为3点: 1.增加冗余 2.增加了机器的处理能力 3.对于读操作为主的应用,使用读写分离是最好的场景,因为可以确保写的服务器压力更小,而读又可以接受点时间上的延迟。 -
redis 没有什么持久化能主从复制吗[2022-10-05]
作用是复制一个与当前进程一样的进程,新进程的所有数据(变量、环境变量、程序计数器等)数值都和原进程一致,但是是一个全新的进程,也称为原进程的子进程。 -
redis主从复制的延时怎么处理[2022-05-31]
应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql。 同时要注意避免冲突,在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增并进行读取,若mysql更新失败,则需要及时清除缓存及同步redis主键 -
redis 如何判断是集群还是主从[2022-05-08]
redis主从复制 redis主从配置比较简单,基本就是在从节点配置文件加上:slaveof 192.168.33.130 6379 主要是通过master server持久化的rdb文件实现的。master server 先dump出内存快照文件,然后将rdb文件传给slave server,slave server 根据rdb文件重建内存表。 redis复制过程如下: 1、slave server启动连接到master server之后,salve server主动发送SYNC命令给master ser ... -
23,redis如何实现主从复制[2022-09-24]
redis主从复制 和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图为级联结构。 全量同步 Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具体步骤如下: - 从服务器连接主服务器,发送SYNC命令; - 主服务器接收到SYNC命名后,开始执行B ... -
redis主从复制最好采用哪种结构[2022-08-21]
redis主从复制总结整理 主题 Redis Redis的主从复制策略是通过其持久化的rdb文件来实现的,其过程是先dump出rdb文件,将rdb文件全量传输给slave,然后再将dump后的操作实时同步到slave中。让从服务器(slave server)成为主服务器(master server)的精确复制品。官方文档ReplicationHowto中提到以下特点: 一个master支持多个slave,slave可以接受其他slave的连接,作为其他slave的master,从而形成一个master-sl ... -
MySQL主从复制读写分离如何提高从库性能[2021-12-16]
读写分离顾名思义,读和写是分开的。一般数据库压力在于读,搭建主从可以让主库写,从库读,可以减少I/O竞争,提高性能。主要概括为3点: 1.增加冗余 2.增加了机器的处理能力 3.对于读操作为主的应用,使用读写分离是最好的场景,因为可以确保写的服务器压力更小,而读又可以接受点时间上的延迟。 -
mysql的读写分离和主从复制的区别在哪里[2023-08-16]
从目的上来说都是减小服务器压力,运转效率更高,也更有利于信息的管理 区别在于 读写分: 是一个表只负责向前端展示数据,后台管理人员对数据库表进行的增删改会在另一个表里,把这两个表给他分开,各管各的,这就是读写分离 主从复制:一般就是一个表在增删改之后会及时更新到另外一个表里,保证他两数据室一样的 -
redis 如何判断是集群还是主从[2023-01-22]
redis主从复制 redis主从配置比较简单,基本就是在从节点配置文件加上:slaveof 192.168.33.130 6379 主要是通过master server持久化的rdb文件实现的。master server 先dump出内存快照文件,然后将rdb文件传给slave server,slave server 根据rdb文件重建内存表。 redis复制过程如下: 1、slave server启动连接到master server之后,salve server主动发送SYNC命令给master ser ... -
redis主从复制不能是守护进程吗[2022-04-11]
1. client在一个连接中发出multi命令时, 2. 这个连接会进入一个事务上下文, 3. 该连接后续的命令不会立即执行, 4. 而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中的所有命令!