建设个人网站可以卖产品吗,网站建设工资郑州,广告公司名称大全最新,网站建设网站推广服务公司1.redis主从复制 主从复制是指将一台redis服务器#xff08;主节点-master#xff09;的数据复制到其他的redis服务器#xff08;从节点-slave#xff09;#xff0c;默认每台redis服务器都是主节点#xff0c;每个主节点可以有多个或没有从节点#xff0c;但一个从节点…1.redis主从复制 主从复制是指将一台redis服务器主节点-master的数据复制到其他的redis服务器从节点-slave默认每台redis服务器都是主节点每个主节点可以有多个或没有从节点但一个从节点只能有一个主节点
1.1 主从复制的作用 数据冗余主从复制实现了数据的热备份是持久化之外的一种数据冗余方式 故障恢复当主节点出现问题时可以由从节点提供服务 负载均衡在主从复制的基础上配合读写分离主节点提供写服务从节点提供读服务分担服务器负载 高可用基石主从复制是哨兵和集群能够实施的基础
1.2 常见主从结构 一主一从用于主节点故障转移从节点主要为了数据安全性和避免持久化对主节点的影响 一主多从主要针对读较多的场景读由多个节点分担但影响主节点的稳定影响带宽 树状主从为了缓解一主多从导致的主节点压力大的问题形成层级结构主管从-从再管从
1.3 实现主从复制 将redis.conf复制多份并修改配置 92 prot 6379 158 pidfile /var/run/redis_6379.pid 171 logfile redis6379.log 253 dbfilename dump6379.rdb 可以用指令批量替换 :%s/6379/6380/g 启动不同服务器并开启不同终端连接不同服务器 redis-server redis6379.conf redis-cli -p 6379 输入info replication可以查看当前服务器的角色等信息 在服务器下输入指令设置当前服务为从服务器和其主服务器是谁 salveof 主服务器ip 端口号 2.redis哨兵 当主服务器宕机时为了保持功能的正常实现我们需要一个哨兵来选一台从服务器成为主服务器哨兵也是一台单独的redis服务器连接主服务器并经过主连接从 为了防止单个哨兵出现宕机误判等问题我们还可以使用多个哨兵必须为奇数设置一个投票参数只有当达到这个数目的哨兵认为主服务器宕机才会主从切换 哨兵的sentinel.conf应该如下设置注释去掉 protected-mode no # 关闭保护模式方便测试 port 26379 # 哨兵的端口 sentinel monitor mymaster 192.168.41.226 6379 1 # 192.168.41.226主机ip 6379端口 1至少几个哨兵认为主机下线时进行故障切换 输入redis-sentinel sentinel6379.conf 启动哨兵
3.redis集群 从redis 3.0后版本都支持redis-cluster集群就是开启多台redis主服务器连接一起形成集群
这是为了解决sentinel模式虽然能满足大多数需求但无法处理大量写的请求的问题 这也是经典的P2P去中心化
3.1 redis集群的实现 在/usr/local/redis下创建redis-cluster目录 拷贝redis6379到redis-cluster中并命名为redis8001.conf 92 修改redis8001.conf中的端口号 158 修改pidfile 171 修改日志文件 253 修改rdb文件 699 开启aof设为yes 703 指定aof文件名 832 开启集群 设为yes 840 指定nodes配置文件 为了方便多个redis服务器的启动我们可以编写一个启动脚本在/user/local/redis下创建start_all.sh文件在文件中加入 redis-server redis-cluster/redis8001.conf redis-server redis-cluster/redis8002.conf redis-server redis-cluster/redis8003.conf redis-server redis-cluster/redis8004.conf redis-server redis-cluster/redis8005.conf redis-server redis-cluster/redis8006.conf ps -ef|grep redis 保存退出为start_all.sh文件添加执行权限 chmod x start_all.sh 启动redis ./start_all 创建集群 redis-cli --cluster create 192.168.74.130:8001 192.168.74.130:8002 192.168.74.130:8003 192.168.74.130:8004 192.168.74.130:8005 192.168.74.130:8006 --cluster-replicas 1 创建过程中要输入yes 连接redis集群要使用-c redis-cli -c -p 8001 创建集群关闭脚本 #!/bin/bash PORT8001 ENDPORT8006 while [ $((PORT ENDPORT)) ! 0 ]; do echo Stopping Redis $PORT redis-cli -p $PORT shutdown PORT$((PORT1)) done echo done exit 0 添加执行权限 chmod x stop_all.sh