商丘购物网站开发设计中移建设有限公司官方网站
商丘购物网站开发设计,中移建设有限公司官方网站,京京商城,公司小程序怎么制作1.redis集群模式
redis单机版#xff0c;出现单机故障后#xff0c;导致redis无法使用#xff0c;如果程序使用redis#xff0c;间接导致程序出错。
redis的集群模式:主从复制模式哨兵模式集群化模式2.主从复制模式一主多从模式。一个主节点#xff0c;多个从节点#xf…1.redis集群模式redis单机版出现单机故障后导致redis无法使用如果程序使用redis间接导致程序出错。redis的集群模式:主从复制模式哨兵模式集群化模式2.主从复制模式一主多从模式。一个主节点多个从节点那么主节点可以负责:读操作写操作。 从节点只能负责读操作不能负责写操作。 这样就可以把读的压力从主节点分摊到从节点以减少主节点的压力。当主节点执行完写命令会把数据同步到从节点。2.1如何搭建主从关系原则:配从不配主。准备: 一主二从-----3台----开三个虚拟机–为了节省虚拟机在一台主机开启三个redis服务。7001主节点 7002和7003作为从节点(1).可以在同一台虚拟机开启三个redis服务区分这三个服务可以按照端口号。7001[master] 7002[slave] 7003[slave](2).创建文件夹master-slave复制三份redis配置文件 redis7001.conf redis7002.conf redis7003.conf(3). 修改三份配置文件的端口号以及rdb文件的名称(4)开启redis服务(5)进入三个redis服务的客户端(6)查看三个redis服务的主从关系info replication(7)配置7002和7003为7001的从节点slaveof 主节点的ip 主节点port通过实验: 我们在主节点上执行set k1 v1 可以发现从节点也存在该数据.证明同步到从节点。可以看出主节点可以读和写。但是从节点只能读。思考: 1. 如果主节点挂了从节点会不会上位 不会2. 如果增加一个新的从节点新从节点会不会把之前的数据同步过来。会3.哨兵模式由于主从模式主节点单机后从节点不会自动上位。 增加一个哨兵服务该哨兵时刻监控master如果master挂了哨兵会在从节点中选举一位为主节点【哨兵投票机制】修改sentinel.conf配置文件启动哨兵正常开发中一主二从节点都需要开启哨兵来监控这里因为我们是一个虚拟机只需要要配置一个就能监控到监控到三个节点redis-sentinel sentinel.conf测试:主节点挂掉:shutdown—redis-cli客户端思考:老大归位–不在是老大。4.集群化模式不管上面的主从还是哨兵模式都无法解决单节点写操作的问题。如果这时写操作的并发比较高。这是可以实验集群化模式【去中心化模式】原理:redis 集群中内置了 16384 个哈希槽当需要在 Redis 集群中放置一个 key-value时redis 先对 key 使用 crc16 算法算出一个整数结果然后把结果对 16384 求余数这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。当你往Redis Cluster中加入一个Key时会根据crc16(key) mod 16384计算这个key应该分布到哪个hash slot中一个hash slot中会有很多key和value。你可以理解成表的分区使用单节点时的redis时只有一个表所有的key都放在这个表里改用Redis Cluster以后会自动为你生成16384个分区表你insert数据时会根据上面的简单算法来决定你的key应该存在哪个分区每个分区里有很多key。4.1如何搭建去中心化集群准备6台redis服务器 创建cluster文件夹 单独放这六个配置文件搭建:三主三从:6001 6002 6003 主节点6004 6005 6006 从节点Redis-1 防火墙–6379bind 0.0.0.0 69行port 6001 92行daemonize yes 136行dbfilename dump6001.rdb# 打开aof 持久化appendonly yes 700行appendonly appendonly6001.aof# 开启集群cluster-enabled yes 833行# 集群的配置文件,该文件自动生成cluster-config-file nodes-6001.conf 841行# 集群的超时时间cluster-node-timeout 15000 847行启动这六个redis服务redis-server redis6001.confredis-server redis6002.confredis-server redis6003.confredis-server redis6004.confredis-server redis6005.confredis-server redis6006.conf设置主从关系以及槽的分配 --分主从5.0前很复杂这个是5.0之后的redis-cli --cluster create --cluster-replicas 1 192.168.19.151:6001 192.168.19.151:6002 192.168.19.151:6003 192.168.19.151:6004 192.168.19.151:6005 192.168.19.151:6006注意:一定要保证每个节点都没有数据。测试:客户端连接集群redis-cli-c-h 192.168.19.151 -p 6001可以把写操作均摊到不同的节点上减轻了单个主节点的压力