Redis 集群
2021/10/1 19:10:48
本文主要是介绍Redis 集群,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
模式
- 主从模式
- Sentinel模式
- Cluster模式
主从模式
1、数据库分类
- 主数据库(master)
- 从数据库(slave)
2、特点
- 主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库
- 从数据库一般都是只读的,并且接收主数据库同步过来的数据
- 只要网络连接正常,Master会一直将自己的数据更新同步给Slaves,保持主从同步
- 一个master可以拥有多个slave,但是一个slave只能对应一个master
- slave挂了不影响其他slave的读和master的读和写,重新启动后会将数据从master同步过来
- master挂了以后,不影响slave的读,但redis不再提供写服务,master重启后redis将重新对外提供写服务
- master挂了以后,不会在slave节点中重新选一个master
3、工作机制
当slave启动后,主动向master发送SYNC命令。master接收到SYNC命令后在后台保存快照(RDB持久化)和缓存保存快照这段时间的命令,然后将保存的快照文件和缓存的命令发送给slave。slave接收到快照文件和命令后加载快照文件和缓存的执行命令。
复制初始化后,master每次接收到的写命令都会同步发送给slave,保证主从数据一致性。
4、安全设置:
当master节点设置密码后,客户端访问master需要密码,启动slave需要密码,在配置文件中配置即可,客户端访问slave不需要密码
5、缺点:
master节点在主从模式中唯一,若master挂掉,则redis无法对外提供写服务
6、实例
//1、创建文件夹 [user@localhost ~]$ mkdir -p /app/redis/master-slaver [user@localhost master-slave]$ mkdir bin 7001 7002 7003 //2、拷贝修改配置文件 [user@localhost master-slave]$ cd ../src [user@localhost src]$ cp redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server ../master-slave/bin [user@localhost master-slave]$ cp /app/redis/redis.conf 7001/7001.conf [user@localhost master-slave]$ vim 7001/7001.conf bind 10.20.30.40 #监听ip,多个ip用空格分隔 daemonize yes #允许后台启动 logfile "/app/redis/master-slave/7001/redis.log" #日志路径 dir /data/redis #数据库备份文件存放目录 masterauth 123456 #slave连接master密码,master可省略 requirepass 123456 #设置master连接密码,slave可省略 # replicaof 10.20.30.40 7001 # 在slave的配置文件中,配置为192.168.30.128 6379的从节点 # cluster-enabled no # 在slave的配置文件中,配置为no appendonly yes #在/data/redis/目录生成appendonly.aof文件,将每一次写操作请求都追加到appendonly.aof 文件中 //3、启动服务 [user@localhost master-slave]$ cd bin [user@localhost bin]$ ./redis-server ../7001/7001.conf [user@localhost bin]$ ./redis-server ../7002/7002.conf [user@localhost bin]$ ./redis-server ../7003/7003.conf //开三个shell界面 //[user@localhost bin]$ ./redis-cli -h 10.200.202.41 -p 7002 -a 123456 //[user@localhost bin]$ ./redis-cli -h 10.200.202.41 -p 7003 -a 123456 [user@localhost bin]$ ./redis-cli -h 10.20.30.40 -p 7001 -a 123456 10.20.30.40:7001> info replication # Replication role:master connected_slaves:2 slave0:ip=10.200.202.41,port=7002,state=online,offset=686,lag=1 slave1:ip=10.200.202.41,port=7003,state=online,offset=686,lag=0 master_failover_state:no-failover master_replid:7bb378122709dace3458a8fdbbcd201b96e96d20 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:686 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:686 //4、数据演示 10.200.202.41:7001> set name hello (error) CLUSTERDOWN Hash slot not served [user@localhost bin]$ ./redis-cli --cluster check 10.20.30.40:7001 [ERR] Not all 16384 slots are covered by nodes [user@localhost bin]$ ./redis-cli --cluster fix 10.20.30.40:7001 Can I set the above configuration? (type 'yes' to accept): yes //一定要输入yes,不是y 10.200.202.41:7001> set name hello OK //在master节点写入的数据,很快就同步到slave节点上,而且在slave节点上无法写入数据 10.200.202.41:7002> get name "hello" 10.200.202.41:7002> set six man (error) READONLY You can't write against a read only replica.
Sentinel模式
这篇关于Redis 集群的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作
- 2024-10-22Redis缓存入门教程:快速掌握Redis缓存基础知识