redis复制原理:
当设置好slave服务器后,slave会建立和master的连接,然后发送sync命令。无论是第一次同步建立的连接还是连接断开后的重新连 接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存起来。后台进程完成写文件 后,master就发送文件给slave,slave将文件保存到磁盘上,然后加载到内存恢复数据库快照到slave上。接着master就会把缓存的命 令转发给slave。而且后续master收到的写命令都会通过开始建立的连接发送给slave。从master到slave的同步数据的命令和从 client发送的命令使用相同的协议格式。当master和slave的连接断开时slave可以自动重新建立连接。如果master同时收到多个 slave发来的同步连接命令,只会使用启动一个进程来写数据库镜像,然后发送给所有slave。
环境信息:
selinux、iptables 关闭
master centos6.5_x65 ip:192.168.0.76
slave centos6.5_x65 ip:192.168.0.75
两台机器安装redis,过程略。
修改master主配置文件:
[root@localhost ~]# vi /usr/local/redis/conf/redis.conf
daemonize yes #守护进程
保存退出。
启动master:
[root@localhost ~]# /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
修改slave主配置文件:
daemonize yes #守护进程
slaveof 192.168.0.76 6379 #定义master的ip及端口
[root@localhost ~]# /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
[root@localhost ~]# lsof -i:6379 #看到服务已启动并且与master建立连接
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
redis-ser 4713 root 4u IPv6 21909 0t0 TCP *:6379 (LISTEN)
redis-ser 4713 root 5u IPv4 21911 0t0 TCP *:6379 (LISTEN)
redis-ser 4713 root 6u IPv4 21915 0t0 TCP 192.168.0.75:44736->192.168.0.76:6379 (ESTABLISHED)
测试:
在master执行:
[root@localhost ~]# /usr/local/redis/bin/redis-cli
127.0.0.1:6379> set test1 aaa #添加test1
OK
127.0.0.1:6379> get test1
“aaa”
127.0.0.1:6379> set test2 bbb ##添加test2
OK
127.0.0.1:6379> get test2
“bbb”
127.0.0.1:6379>
在slave执行:
[root@localhost ~]# /usr/local/redis/bin/redis-cli
127.0.0.1:6379> get test1 #获取数据
“aaa”
127.0.0.1:6379> get test2
“bbb”
127.0.0.1:6379>
默认slave是只能读取,不能添加数据的。在slave添加数据时会报错:
127.0.0.1:6379> set test3 ccc
(error) READONLY You can’t write against a read only slave.
要启用slave的写操作,需要修改配置文件,将slave-read-only改为no
slave-read-only no #yes改为no
redis的主从复制与mysql比较来说配置还是很简单的。
相关推荐
同时,Redis还支持主从复制,可以构建高可用的集群,当主节点故障时,从节点能够接管服务,确保服务的连续性。 在与MySQL配合使用时,Redis可以作为一个高效的缓存层,减轻数据库的压力。常见的应用场景包括:将...
3. 主从复制:Redis支持主从复制,允许数据在多个实例间进行复制,提高系统的可用性和扩展性。2.8.9版本在复制方面进行了改进,包括部分重同步,减少了因网络问题导致的全量复制需求。 4. 事务:Redis支持简单的...
3. **主从复制**:通过复制功能,可以创建多个从服务器,用于数据备份和负载均衡,提高系统的可用性和可靠性。 4. **事务**:Redis支持事务,可以批量执行多个操作,并且保证这些操作的原子性。 5. **发布订阅**:...
3. **复制**:Redis支持主从复制,可以创建多个从节点,以提高可用性和读取性能。 4. **事务**:Redis支持简单的事务操作,可以一次执行多个命令,确保原子性。 5. **发布/订阅**:Redis提供了发布订阅模式,用于...
Redis还支持事务(transactions)、发布订阅(publish/subscribe)模式、主从复制(replication)、以及LUA脚本。主从复制可以实现数据备份和负载均衡,而发布订阅则用于构建消息系统。LUA脚本允许用户在服务器端...
Sentinel是一个分布式系统,它可以监视多个Redis主从复制集群,当检测到主节点故障时,Sentinel会自动将从节点提升为主节点,确保服务的连续性。在Redis 2.8.9中,Sentinel系统已经相当成熟,提供了稳定且可靠的高...
Redis支持主从复制,可以实现数据备份和负载均衡。主服务器的数据变更会同步到从服务器,确保数据一致性。 7. **Redis事务**: Redis的事务是单线程模型,使用`MULTI`、`EXEC`命令来包裹一系列操作,确保原子性。...
**六、Redis的主从复制** 主从复制是实现数据备份和读写分离的基础,通过`slaveof`命令设置从服务器连接到主服务器,同步数据。 **七、Redis Sentinel** Redis Sentinel是高可用性解决方案,监控主从节点状态,当...
3. **主从复制**:Redis支持主从复制,可以将一个Redis实例的数据复制到多个从节点,用于提高可用性和扩展性。在主节点出现问题时,可以从节点接管服务,实现故障切换。 4. **事务**:Redis支持简单事务,允许用户...
本文将详细解读Redis 2.8.9配置文件的各项中文解释。 首先,`daemonize` 参数决定了Redis是否以守护进程(后台运行)的方式启动。默认值为 `no`,表示Redis不会在后台运行。如果需要后台运行,将其设置为 `yes`。 ...