redis mkdir log mkdir data mkdir conf cp /usr/src/redis-2.8.19/redis.conf conf/redis-6379.conf vi conf yes 启动redis redis-server /redis/conf/redis-6379.conf & 查看端口 netstat -anpt | grep redis ############ slaveof <masterip> <masterport> slaveof 192.168.1.28 6379 重启redis pkill redis-server redis-server /redis [root@localhost redis]# pkill redis-server [root@localhost redis]# redis-server /redis/conf/redis-6379 .conf & [4] 23642 [3] Done redis-server /redis/conf/redis-6379.conf 重新进入redis,查看
/antirez/redis/tar.gz/2.8.21 mv 2.8.21 redis-2.8.21.tar.gz rsync -av redis-2.8.21.tar.gz node02: ="$basedir/var/redis.pid" REDIS_CONFIG="$basedir/etc/redis.conf" [ -e /etc/sysconfig/redis ] && . /usr/local/redis/var/redis.pid port 6379 timeout 300 loglevel debug logfile /usr/local/redis/var/redis.log 0.0 103304 892 pts/0 S+ 13:45 0:00 grep redis 主从配置 主[root@node01]# vim /usr/local/redis/etc /usr/local/redis/etc/redis.confdaemonize yespidfile /usr/local/redis/var/redis.pidport 6379timeout
个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。
主从模式架构 默认情况下,主节点可以读写,从节点只能读,禁止写操作。不修改配置让从节点支持写操作是没有意义的,因为首先写入的数据不会同步到其他节点,其次当主节点修改相同的数据时,从节点的数据会被覆盖。 image.png 上图中的集群由一个master(6379端口)和两个slave(6380和6381端口)构成,主从模式类似于数据库的读写分离机制,主要有以下特点: 1.主数据库可以进行读和写操作,而从数据库一般只允许读操作 主从模式搭建方法 1、cd redis目录 新建一个redis_cluster目录 mkdir redis_cluster 2、把原redis目录下的redis.conf文件复制到 redis_cluster cp -r redis.conf redis_cluster/ 3、修改文件名 cd redis_cluster mv redis.conf master_6379.conf 4、在复制一份Slave master_6379.conf 启动从节点 redis-server slave_6380.conf 测试主节点 redis-cli -p 6379 auth 你设置的redis密码 get name
gcc 安装即可 tar xzf redis-4.0.14.tar.gz cd redis-4.0.14 make make install Redis没有其他外部依赖,安装过程很简单。 编译后在Redis源代码目录的src文件夹中可以找到若干个可执行程序,安装完后,在/usr/local/bin目录中可以找到刚刚安装的redis可执行文件。 复制redis.conf mkdir /redis cp ~/redis-4.0.14/redis.conf /redis/redis.conf 修改master的redis.conf配置文件 bind /usr/local/bin/redis-server redis.conf 再分比启动两个slave cd /redis /usr/local/bin/redis-server redis.conf 查看进程 ps -ef | grep redis 用info命令进行验证主从角色 /usr/local/bin/redis-cli -a 密码test123 -p 6379 info|grep role
主从架构应用场景 主从架构是为了分担单节点访问的压力以及单节点故障期间仍可提供读操作服务; 由主节点提供读写操作,从节点只提供读操作,这样避免了多节点写导致的写操作互相同步问题,只需要从主节点同步至从节点即可 ; 主从架构数据同步过程 全量同步 当第一次进行数据同步或repl_backlog_buffer被覆盖掉就会触发全量同步。 FULLRESYNC命令将主库的runID(主库实例id)和offset(复制进度)发送给从库; 主库开启bgsave子进程,生成RDB快照; 将RDB快照发送给从库;(这里是子进程去执行的,但是仍然会影响Redis 例如缓冲空间的计算公式是:缓冲空间大小 = 主库写入命令速度 * 操作大小 - 主从库间网络传输命令速度 * 操作大小。 主从架构部署结构 主从架构模式 ? 以上架构,如果从库较多,那么会导致主库过多的在处理主从同步工作,可以选取性能比较好的从库,作为二级主库,实现 主-从-从 的模式,分摊主库的同步工作 ?
192.168.0.174 6379 #从库只能读操作 slave-read-only yes 开启主从 [root@localhost redis-5.0.5]# . /src/redis-cli -p 6379 127.0.0.1:6379> info 输入info命令,如下图,表示主从搭建成功了 ? 然后再设置多一个从 [root@localhost redis-5.0.5]# cp -v redis_6380.conf redis_6381.conf "redis_6380.conf" -> "redis 遇到的几个棘手问题: 搭建了三个哨兵,在主挂了之后并没有推举新的主,看了日志一直在选举挂掉的那个库;后面重新把三个主从,三个哨兵重新启动了,再测试又可以了。 同时还加上了以下配置: protected-mode no 哨兵选举会把主从的conf文件修改。 遇到写失败,后来把三个哨兵重新启动了又可以了,不知道是不是选举的时候把原来的主变成了从。
Redis主从复制实际上就是将主Redis节点的数据,复制到其他从Redis节点去进行存储,当主节点因为出现异常宕机后,如何将从节点切换成主节点继续提供服务呢? Redis主从切换主要分为以下两种方式:手动切换以及哨兵模式。今天我们一起来看看Redis在出现故障是如何进行主从切换继续提供服务的。 命令: redis-cli -h <从节点ip> -p <从节点端口号> slaveof no one 通过上面命令,可以将该从节点临时设置为主节点。当Redis重启时,主从切换设置将会失效。 然后重启原主节点Redis服务以及临时主节点Redis服务,恢复原先的主从关系。但是毕竟主从手动切换方案是存在问题的不是很适用,所以一般主从切换会采用哨兵模式。 哨兵模式引发数据丢失问题 哨兵模式 + Redis主从复制这种部署结构,无法保证数据不会出现丢失。哨兵模式下数据丢失主要有两种情况: 因为主从复制是异步操作,可能主从复制还没成功,主节点宕机了。
redis主从同步 ? 原理: 1. 从服务器向主服务器发送 SYNC 命令。 2. ------------- 1、在开启主从复制的时候,使用的是RDB方式的,同步主从数据的 2、同步开始之后,通过主库命令传播的方式,主动的复制方式实现 3、2.8以后实现PSYNC的机制,实现断线重连 6382/redis.conf 主从规划 主节点:6380 从节点:6381、6382 配置主从同步 6381/6382命令行 redis-cli -p 6381 SLAVEOF 127.0.0.1 6380 #指明主的地址 redis-cli -p 6382 SLAVEOF 127.0.0.1 6380 #指明主的地址 检查主从状态 从库: 127.0.0.1:6382> info replication #关闭主库6380 redis-cli -p 6380 shutdown 检查从库主从信息,此时master_link_status:down redis-cli -p 6381 info replication
从今天开始开辟Redis相关方面的东西 上一节说了如何安装和配置redis 这节为如何配置redi主从 系统为 Redhat 7.4 数据库为 Redis 5.0.8 1. 搭建2套redis 首先我们根据以前的内容搭建2套redis 并全部启动 3. 启动同步 这里我们只需要一条命令就可以实现同步 slave端操作 su - redis redis-cli -p 6380 -a 123456 127.0.0.1:6380> slaveof 172.18.95.83 测试主从同步 我们在主库新增key,看是否会同步 主库 127.0.0.1:6380> set key1 'test' OK 从库 127.0.0.1:6380> get key1 "test" 6. 查看同步状态 接下来我们可以通过命令查看主从同步状态 info replication 主库 ? slave状态是否为online master-repl-offset 复制的偏移量 从库 ?
Redis的性能很好,但在某些情况下还是不能满足我们的需求,比如过多的用户进入主页,导致Redis被频繁访问,此时就存在大量的读操作。 在一些秒杀场景中,一瞬间有成千上万的读请求到达Redis服务器,显然单靠一台Redis服务器是不够的。 一、主从同步的概念 互联网系统一般是以主从架构为基础的,所谓主从架构的大致思路是: 在多台数据服务器中,只有一台主服务器,而主服务器只负责写入数据,不负责让外部程序读取数据。 二、Redis主从同步配置 对Redis进行主从同步的配置分为主机和从机,主机是一台,而从机可以是多台。 首先,明确主机。 三、Redis主从同步的过程 ? 下面是文字描述: (1)无论何时都要先保证主服务器的开启,开启主服务器后,从服务器通过命令或者重启配置项就能同步到主服务器。
不多说,直接上代码: /** 有些时候,为了能够是主从热切换, 启动的redis需要默认为自己的从机, 然后更改为主机或者更改为恢复数据主机的从机之后再更改为主机 . */ private static void testTransGusest() { // 连接本地的 Redis 服务 Jedis jedis = true; boolean ptag2 = true; MyCmdUtil mc= new MyCmdUtil(); String dir="D:\\Redis-x64 if (jedis.dbSize().equals(jedis.dbSize())) { System.out.println("主从切换并数据同步完成
Redis的主从配置可以说是哨兵或者集群模式的最简单元.今天我们就来看下Redis是如何做主从同步,以及要注意什么. 一. 主从配置 配置方式有两种: (1) 配置Redis.conf #slaveof <masterip> <masterport> slaveof 172.17.0.2 6379 (2) 使用slaveof 全量同步 主从节点数据同步流程如下: 可见主从同步会有两个主要过程 1. 同步全量RDB信息 2. 同步增量repl_back_buffer信息,buffer的默认大小为1M,可以通过redis.conf中repl-backlog-size配置修改 通过主从节点的日志了解数据同步过程 主节点日志 1 主从配置要一致 maxmemory不一致,可能会造成丢失数据 数据结构优化参数不一致,会造成主从内存不一致
二、配置redis主从 (一个服务器上启动两个redis,端口为6379和6380, 192.168.225.128:6379主,192.168.225.128:6380从 步骤 1、主redis服务器 / # bin/redis-server redis6380.conf & 步骤 4、查看redis进程 # ps -ef |grep redis 步骤 5、验证主从是否同步(128:6379和128: 192.168.225.128:6380> 步骤 6、主从同步正常 步骤 7、从库默认是只读的 192.168.225.128:6380> set lll beaty (error) READONLY 三、redis主从切换 192.168.225.128:6379主,192.168.225.128:6380从 步骤 1、停止主库redis # redis-cli -h 192.168.225.128 6379 OK 步骤 5、查看主库redis是否正常 之前在从库中添加的key,此时在主库6379中都可以查看 步骤 6、验证主从同步是否正常 主redis6379写入,从redis6380可正常同步
1、下载redis3.2.3 wget http://download.redis.io/releases/redis-3.2.3.tar.gz tar -zxvf redis-3.2.3.tar.gz redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server。 其中redis-server是启动Redis服务的,redis-cli是进入Redis客户端的。 redis-check-rdb redis-sentinel redis-server redis-trib.rb redis-cli .. /local/jenkins/redis/redis-3.2.3 /usr/local/jenkins/redis/redis-slave-3.2.3 2、配置主从redis cd /usr/local
【redis主从】: 是备份关系, 我们操作主库,数据也会同步到从库。 如果主库机器坏了,从库可以上。就好比你 D盘的片丢了,但是你移动硬盘里边备份有。 【redis哨兵】: 哨兵保证的是HA,保证特殊情况故障自动切换,哨兵盯着你的“redis主从集群”,如果主库死了,它会告诉你新的老大是谁。 【redis集群】: 集群保证的是高并发,因为多了一些兄弟帮忙一起扛。同时集群会导致数据的分散,整个redis集群会分成一堆数据槽,即不同的key会放到不不同的槽中。
一.主从简介 主从介绍 Redis都是主节点。每个从节点只能有一个主节点,而主节点可以同时具有多个从节点,复制的数据流是单向的。 主从节点复制成功建立后,可以使用info replication命令查看复制相关状态, 如下所示。 切换主从会清空从节点所有数据,从节点应配置为只读。 主从复制间是异步的,主接到请求完成和复制给从是不相关的。主从要求配置一致,例如内存之类的。 数据持续复制 偏移量 redis主节点在写入数据时会记录字节长度,在info replication命令中master_repl_offset字段显示 在从节点info relication中的slave_repl_offset 可以在重启后用redis-cli debug reload命令加载RDB,使得id号不变
Redis redis-cli 二、主从复制(读写分离) redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构 .可以避免redis单点故障,构建读写分离架构,满足读多写少的应用场景. 1、主从复制原理 ①slave发起请求和master建立连接,master验证通过后即可建立连接。 三、主从架构 1、准备3个配置文件端口分别为 6379 (Master) 6380 (Slave) 6381 (Slave) 2、修改原来的redis.conf文件 ,拷贝出2个redis.conf grep redis 7、主从的配置有2种方法: ①在所有从节点的redis.conf(redis.6380.conf和redis.6381.conf)中设置 slaveof ②使用 redis-cli客户端连接到Redis服务中,执行slaveof命令 这种方式在重启之后就会失去主从复制关系 8、查看主从信息:INFO replication ①主库查询 ②
主从架构 ? 节点IP 端口号 角色 192.168.1.151 6379 master 192.168.1.151 6380 slave 192.168.1.151 6381 slave Redis主从工作原理 主从复制(部分复制,断点续传)流程图 ? 主从架构搭建 redis-6379.conf为master配置文件,redis-6380.conf和redis-6381.conf为slave配置文件。 _6380.log #log文件 dir /var/lib/redis/6380 #数据存放目录 #配置主从复制 replicaof 192.168.1.151 6379 #从本机6379的redis redis]# redis-cli -p 6380 127.0.0.1:6380> keys * 1) "k1" 127.0.0.1:6380> 在redis节点上可以通过info命令查看主从相关信息
初始化 配置好主从后,无论slave是初次还是重新连接到master, slave都会发送PSYNC命令到master。 如果是重新连接,且满足增量同步的条件(3.1中详述),那么redis会将内存缓存队列中的命令发给slave, 完成增量同步(Partial resynchronization)。 正常同步开始 任何对master的写操作都会以redis命令的方式,通过网络发送给slave。 2. slave的redis.log也反应了上面的过程。 参考 http://redis.io/topics/replication
目录 集群结构 准备实例和配置 启动 开启主从关系 测试 集群结构 我们搭建的主从集群结构如图: 共包含三个节点,一个主节点,两个从节点。 这里我们会在同一台虚拟机中开启3个redis实例,模拟主从集群,信息如下: IP PORT 角色 192.168.150.101 7001 master 192.168.150.101 7002 slave -6.2.4/redis.conf文件拷贝到三个目录中(在/tmp目录执行下列命令): # 方式一:逐个拷贝 cp redis-6.2.4/redis.conf 7001 cp redis 启动 为了方便查看日志,我们打开3个ssh窗口,分别启动3个redis实例,启动命令: # 第1个 redis-server 7001/redis.conf # 第2个 redis-server 7002 7003 | xargs -I{} -t redis-cli -p {} shutdown 开启主从关系 现在三个实例还没有任何关系,要配置主从可以使用replicaof 或者slaveof
云数据库 Redis,数据库缓存,数据库存储,云数据库 云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。 云数据库Redis是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
扫码关注腾讯云开发者
领取腾讯云代金券