当前位置: 首页 > news >正文

织梦瀑布流网站模板wordpress get var

织梦瀑布流网站模板,wordpress get var,吉林公司网站建设,啦啦啦中文免费视频高清观看目录 概念配置步骤通过命令配置主从复制原理薪火相传反客为主哨兵(Sentinel)模式原理配置SpringBoot整合Sentinel模式 概念 主机更新后根据配置和策略#xff0c;自动同步到备机的master/slave机制#xff0c;Master以写为主#xff0c;Slave以读为主。 作用#xff1a; … 目录 概念配置步骤通过命令配置主从复制原理薪火相传反客为主哨兵(Sentinel)模式原理配置SpringBoot整合Sentinel模式 概念 主机更新后根据配置和策略自动同步到备机的master/slave机制Master以写为主Slave以读为主。 作用 读写分离性能扩展降低主服务器的压力容灾快速恢复主机挂掉时从机变为主机 配置步骤 以配置1主2从为例。现实中是需要3台机器的为了方便我们就在一台机器上来演示通过不同的端口来区分机器3台机器的配置。 角色端口master主6379slave1从6380slave2从6381 配置主从步骤如下 1创建案例工作目录master-slave 执行下面命令创建 /opt/master-slave 目录本次所有操作均在 master-slave 目录进行 ps -ef | grep redis | awk -F {print $2;} | xargs kill -9 # 方便演示停止所有的 redis mkdir /opt/master-slave cd /opt/master-slave/2将redis.conf复制到master-slave目录 cp /opt/redis-6.2.1/redis.conf /opt/master-slave/3创建master的配置文件redis-6379.conf 在/opt/master-slave目录创建 redis-6379.conf 文件内容如下注意 192.168.200.129 是这个测试机器的ip大家需要替换为自己的 #redis.conf是redis原配置文件内部包含了很多默认的配置这里使用include将其引用相当于把 redis.conf内容直接贴进来了 include /opt/master-slave/redis.conf daemonize yes bind 192.168.200.129 #配置密码 requirepass 123456 dir /opt/master-slave/ logfile /opt/master-slave/6379.log #端口 port 6379 #rdb文件 dbfilename dump_6379.rdb #pid文件 pidfile /var/run/redis_6379.pid4创建slave1的配置文件redis-6380.conf 在/opt/master-slave目录创建 redis-6380.conf 文件内容如下和上面master的类似多了后面2行 include /opt/master-slave/redis.conf daemonize yes bind 192.168.200.129 requirepass 123456 dir /opt/master-slave/ port 6380 dbfilename dump_6380.rdb pidfile /var/run/redis_6380.pid logfile /opt/master-slave/6380.log #用来指定主机slaveof 主机ip 端口 slaveof 192.168.200.129 6379 #主机的密码 masterauth 1234565创建slave2的配置文件redis-6381.conf include /opt/master-slave/redis.conf daemonize yes bind 192.168.200.129 requirepass 123456 dir /opt/master-slave/ port 6381 dbfilename dump_6381.rdb pidfile /var/run/redis_6381.pid logfile /opt/master-slave/6381.log#用来指定主机slaveof 主机ip 端口 slaveof 192.168.200.129 6379 #主机的密码 masterauth 1234566启动master和slave # 启动master redis-server /opt/master-slave/redis-6379.conf # 启动slave1 redis-server /opt/master-slave/redis-6380.conf # 启动slave2 redis-server /opt/master-slave/redis-6381.conf7查看主机的信息 通过redis-cli命令连接主机如下 redis-cli -h 192.168.200.129 -p 6379 -a 123456通过下面命令查看主机信息 info Replication8查看slave1的信息 通过下面2个命令查询从机slave1的信息 redis-cli -h 192.168.200.129 -p 6380 -a 123456 info Replication如下 9验证主从同步效果 在master上面执行下面2个命令 192.168.200.129:6379 flushdb OK 192.168.200.129:6379 set name ready OK 192.168.200.129:6379 set age 30 OK到slave1或slave2上执行下面命令可以看出来数据已经同步过来了 192.168.200.129:6380 mget name age 1) ready 2) 30 通过命令配置 1执行下面命令连接slave1 redis-cli -h 192.168.200.129 -p 6380 -a 1234562执行下面命令设置master的密码 由于master需要密码所以在slave1中需要指定master的密码否则无法同步数据。 config set masterauth 1234563执行下面命令指定slave1的作为master的从机 slaveof 192.168.200.129 6379主从复制原理 slave启动成功连接到master后会给master发送数据同步消息发送sync命令master接收到slave发来的数据同步消息后把主服务器的数据进行持久化到rdb文件同时会收集接收到的用于修改数据的命令master将传rdb文件发送给你slave完成一次完全同步全量复制而slave服务在接收到master发来的rdb文件后将其存盘并加载到内存增量复制master继续将收集到的修改命令依次传给slave完成同步但是只要重新连接master一次完全同步全量复制将会被自动执行 薪火相传 若master下面挂很多slavemaster会有压力实际上slave下面也可以挂slave如下图配置这里就不演示了和上面的类似。 反客为主 当master挂掉之后我们可以从slave中选择一个作为主机。 比如我们想让slave1作为主机那么可以在slave1上执行下面的命令就可以了。 slaveof no one此时slave1就变成主机了然后再去其他slave上面执行 slaveof 命令将其挂在slave1上。 这种主备切换有个缺点需要手动去执行命令去操作不是太方便。 下面来介绍另外一种方式哨兵模式主挂掉之后自动从slave中选举一个作为主机自动实现故障转移。 哨兵(Sentinel)模式 哨兵(Sentinel)模式即为反客为主的自动版能够自动监控master是否发生故障如果故障了会根据投票数从slave中挑选一个作为master其他的slave会自动转向同步新的master实现故障自动转义。 原理 sentinel会按照指定的频率给master发送ping请求看看master是否还活着若master在指定时间内未正常响应sentinel发送的ping请求sentinel则认为master挂掉了但是这种情况存在误判的可能比如可能master并没有挂只是sentinel和master之间的网络不通导致导致ping失败。 为了避免误判通常会启动多个sentinel一般是奇数个比如3个那么可以指定当有多个sentinel都觉得master挂掉了此时才断定master真的挂掉了通常这个值设置为sentinel的一半比如sentinel的数量是3个那么这个量就可以设置为2个。 当多个sentinel经过判定断定master确实挂掉了接下来sentinel会进行故障转移会从slave中投票选出一个服务器将其升级为新的主服务器 并让失效主服务器的其他从服务器slaveof指向新的主服务器 当客户端试图连接失效的主服务器时 集群也会向客户端返回新主服务器的地址 使得集群可以使用新主服务器代替失效服务器。 配置 1需求 下面我们来实现1主2从3个sentinel的配置当从的挂掉之后要求最少有2个sentinel认为主的挂掉了才进行故障转移。 为了方便我们在一台机器上进行模拟我的机器ip是192.168.200.129通过端口来区分6个不同的节点1个master、2个slave、3个sentinel节点配置信息如下 2创建案例工作目录sentinel 执行下面命令创建 /opt/sentinel 目录本次所有操作均在 sentinel 目录进行 # 方便演示停止所有的redis ps -ef | grep redis | awk -F {print $2;} | xargs kill -9 mkdir /opt/sentinel cd /opt/sentinel/3将redis.conf复制到sentinel目录 redis.conf 是redis默认配置文件 cp /opt/redis-6.2.1/redis.conf /opt/sentinel/4创建master的配置文件redis-6379.conf 在/opt/sentinel目录创建 redis-6379.conf 文件内容如下注意 192.168.200.129 是这个测试机器的ip大家需要替换为自己的 include /opt/sentinel/redis.conf daemonize yes bind 192.168.200.129 dir /opt/sentinel/port 6379 dbfilename dump_6379.rdb pidfile /var/run/redis_6379.pid logfile ./6379.log5创建slave1的配置文件redis-6380.conf 在/opt/sentinel目录创建 redis-6380.conf 文件内容如下和上面master的类似只是将6379换成6380了 include /opt/sentinel/redis.conf daemonize yes bind 192.168.200.129 dir /opt/sentinel/port 6380 dbfilename dump_6380.rdb pidfile /var/run/redis_6380.pid logfile ./6380.log6创建slave2的配置文件redis-6381.conf 在/opt/sentinel目录创建 redis-6381.conf 文件内容如下 include /opt/sentinel/redis.conf daemonize yes bind 192.168.200.129 dir /opt/sentinel/port 6381 dbfilename dump_6381.rdb pidfile /var/run/redis_6381.pid logfile ./6381.log7启动master、slave1、slave2 redis-server /opt/sentinel/redis-6379.conf redis-server /opt/sentinel/redis-6380.conf redis-server /opt/sentinel/redis-6381.conf8配置slave1和slave2为master的从库 执行下面命令连接slave1 redis-cli -h 192.168.200.129 -p 6380执行下面命令指定slave1的作为master的从机 slaveof 192.168.200.129 6379Slave2同理。 9创建sentinel1的配置文件sentinel-26379.conf 在/opt/sentinel目录创建 sentinel-26379.conf 文件内容如下 # 配置文件目录 dir /opt/sentinel/ # 日志文件位置 logfile ./sentinel-26379.log # pid文件 pidfile /var/run/sentinel_26379.pid # 是否后台运行 daemonize yes # 端口 port 26379 # 监控主服务器master的名字mymasterIP192.168.200.129port6379最后的数字2表示当 Sentinel集群中有2个Sentinel认为master存在故障不可用则进行自动故障转移 sentinel monitor mymaster 192.168.200.129 6379 2 # master响应超时时间毫秒Sentinel会向master发送ping来确认master如果在20秒内ping 不通master则主观认为master不可用 sentinel down-after-milliseconds mymaster 60000 # 故障转移超时时间毫秒如果3分钟内没有完成故障转移操作则视为转移失败 sentinel failover-timeout mymaster 180000 # 故障转移之后进行新的主从复制配置项指定了最多有多少个slave对新的master进行同步那可以理 解为1是串行复制大于1是并行复制 sentinel parallel-syncs mymaster 1 # 指定mymaster主的密码没有就不指定 # sentinel auth-pass mymaster 12345610创建sentinel2的配置文件sentinel-26380.conf 在/opt/sentinel目录创建 sentinel-26380.conf 文件内容如下 # 配置文件目录 dir /opt/sentinel/ # 日志文件位置 logfile ./sentinel-26380.log # pid文件 pidfile /var/run/sentinel_26380.pid # 是否后台运行 daemonize yes # 端口 port 26380 # 监控主服务器master的名字mymasterIP192.168.200.129port6379最后的数字2表示当Sentinel集群中有2个Sentinel认为master存在故障不可用则进行自动故障转移 sentinel monitor mymaster 192.168.200.129 6379 2 # master响应超时时间毫秒Sentinel会向master发送ping来确认master如果在20秒内ping 不通master则主观认为master不可用 sentinel down-after-milliseconds mymaster 60000 # 故障转移超时时间毫秒如果3分钟内没有完成故障转移操作则视为转移失败 sentinel failover-timeout mymaster 180000 # 故障转移之后进行新的主从复制配置项指定了最多有多少个slave对新的master进行同步那可以理 解为1是串行复制大于1是并行复制 sentinel parallel-syncs mymaster 1 # 指定mymaster主的密码没有就不指定 # sentinel auth-pass mymaster 12345611创建sentinel3的配置文件sentinel-26381.conf 在/opt/sentinel目录创建 sentinel-26381.conf 文件内容如下 # 配置文件目录 dir /opt/sentinel/ # 日志文件位置 logfile ./sentinel-26381.log # pid文件 pidfile /var/run/sentinel_26381.pid # 是否后台运行 daemonize yes # 端口 port 26381 # 监控主服务器master的名字mymasterIP192.168.200.129port6379最后的数字2表示当 Sentinel集群中有2个Sentinel认为master存在故障不可用则进行自动故障转移 sentinel monitor mymaster 192.168.200.129 6379 2 # master响应超时时间毫秒Sentinel会向master发送ping来确认master如果在20秒内ping 不通master则主观认为master不可用 sentinel down-after-milliseconds mymaster 60000 # 故障转移超时时间毫秒如果3分钟内没有完成故障转移操作则视为转移失败 sentinel failover-timeout mymaster 180000 # 故障转移之后进行新的主从复制配置项指定了最多有多少个slave对新的master进行同步那可以理 解为1是串行复制大于1是并行复制 sentinel parallel-syncs mymaster 1 # 指定mymaster主的密码没有就不指定 # sentinel auth-pass mymaster 12345612启动3个sentinel 启动sentinel有2种方式 方式1redis-server sentinel.conf --sentinel 方式2redis-sentinel sentinel.conf下面我们使用方式2来启动3个sentinel /opt/redis-6.2.1/src/redis-sentinel /opt/sentinel/sentinel-26379.conf /opt/redis-6.2.1/src/redis-sentinel /opt/sentinel/sentinel-26380.conf /opt/redis-6.2.1/src/redis-sentinel /opt/sentinel/sentinel-26381.conf13分别查看3个sentinel的信息 分别对3个sentinel执行下面命令查看每个sentinel的信息 redis-cli -p sentinel的端口 info sentinelsentinel1 的信息如下其他2个sentinel的信息这里就不列了大家自己去看一下 14验证故障自动转移是否成功 step1在master中执行下面命令停止master 192.168.200.129:6379 shutdownstep2等待2分钟等待完成故障转移 sentinel中我们配置 down-after-milliseconds 的值是60秒表示判断主机下线时间是60秒所以我们等2分钟让系统先自动完成故障转移。 step3查看slave1的主从信息如下 step4查看slave2的主从信息如下 slave2变成master了且slave2变成slave1的从库了完成了故障转移 step5下面验证下slave1和slave2是否同步 在slave2中执行下面命令 192.168.200.129:6381 set address china OK在slave1中执行下面命令查询一下address的值效果如下说明slave2和slave1同步正常 192.168.200.129:6380 get address china15恢复旧的master自动边slave 当旧的master恢复之后会自动挂在新的master下面。 SpringBoot整合Sentinel模式 1引入redis的maven配置 dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-redis/artifactId /dependency2application.properties中配置redis sentinel信息 # redis sentinel主服务名称这个可不是随便写的哦来源于sentinel配置文件中sentinel monitor后面跟的那个名称 spring.redis.sentinel.mastermymaster # sentinel节点列表(host:port)多个之间用逗号隔开 spring.redis.sentinel.nodes192.168.200.129:26379,192.168.200.129:26380,192.168. 200.129:26381 # sentinel密码 #spring.redis.sentinel.password # 连接超时时间毫秒 spring.redis.timeout60000 # Redis默认情况下有16个分片这里配置具体使用的分片默认是0 spring.redis.database03使用RedisTemplate工具类操作redis springboot中使用RedisTemplate来操作redis需要在我们的bean中注入这个对象代码如下 Autowired private RedisTemplateString, String redisTemplate; // 用下面5个对象来操作对应的类型 this.redisTemplate.opsForValue(); //提供了操作string类型的所有方法 this.redisTemplate.opsForList(); // 提供了操作list类型的所有方法 this.redisTemplate.opsForSet(); //提供了操作set的所有方法 this.redisTemplate.opsForHash(); //提供了操作hash表的所有方法 \ this.redisTemplate.opsForZSet(); //提供了操作zset的所有方法RedisTemplate示例代码 import org.redisson.client.RedisConnection; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set;/*** author Ethan* date 2023/11/30* description*/ RestController RequestMapping(/redis) public class RedisController {Autowiredprivate RedisTemplateString, String redisTemplate;/*** string测试* return*/RequestMapping(/stringTest)public String stringTest() {this.redisTemplate.delete(name);this.redisTemplate.opsForValue().set(name, 路人);String name this.redisTemplate.opsForValue().get(name);return name; }/**** list测试 ** * return* */RequestMapping(/listTest)public ListString listTest() {this.redisTemplate.delete(names);this.redisTemplate.opsForList().rightPushAll(names, 刘德华, 张学友, 郭富城, 黎明);ListString courses this.redisTemplate.opsForList().range(names, 0, -1);return courses;}/*** set测试** return*/RequestMapping(setTest)public SetString setTest() {this.redisTemplate.delete(courses);this.redisTemplate.opsForSet().add(courses, java, spring, springboot);SetString courses this.redisTemplate.opsForSet().members(courses);return courses;}/*** hash测试** return*/RequestMapping(hashTest)public MapObject, Object hashTest() {this.redisTemplate.delete(userMap);MapString, String map new HashMap();map.put(name, 路人); map.put(age, 30);this.redisTemplate.opsForHash().putAll(userMap, map);MapObject, Object userMap this.redisTemplate.opsForHash().entries(userMap);return userMap;}/*** 查看redis机器信息** return*/RequestMapping(value /info, produces MediaType.TEXT_PLAIN_VALUE)public String info() {Object obj this.redisTemplate.execute(new RedisCallbackObject() {Overridepublic Object doInRedis(RedisConnection connection) throws DataAccessException {return connection.execute(info);}}); return obj.toString();}}
http://wiki.neutronadmin.com/news/281545/

相关文章:

  • 如何快速自己做网站wordpress和淘宝客程序
  • 用php做的订票网站域名查询系统
  • 南宁网站建设q479185700惠wordpress下载官网
  • 瓯北网站建设东莞公司注册流程
  • 深圳网站制作西安社区团购最新模式
  • 怎样使用网站后台的模板cpa做电影网站侵权吗
  • 工程房地产行业一条龙网站机械类产品网站做优化
  • 网站怎么做站内美化微商城怎么开通视频
  • 哪里找专业做网站的公司网站建设产品图片尺寸要求
  • 网站管理助手4.1html代码注释
  • 做网站推广邢台深圳专业网站建设公司好吗
  • html5 社团网站模板 代码下载在速卖通上具体网络营销方案
  • 网站建设的三网合一wordpress on zencart
  • 网站的效果图网页游戏制作培训
  • 钓鱼网站怎么制作html比较权威的房产网站
  • 哪些网站做的好看的图片网站建设 骏域网络建设专家广州
  • 2012r2网站建设建e网室内设计网怎么用
  • 谁做的四虎网站是多少钱郑州网站推广公司咨询
  • 网站建设的主要产品网站建设落地页
  • 克隆网站模板小红书seo排名优化
  • 快速搭建电子商务网站流量推广怎么做
  • phpcmsv9网站建设入门教程海外网站备案
  • iis7 发布静态网站上海公司买新能源车需要什么条件
  • 代码网站怎么制作可以推广的app有哪些
  • 手机网站建设策划书免费建站网站一级123456
  • 做网站做哪个行业好前端程序员
  • 外包公司做的网站怎么改密码中国被墙的网站
  • 互联网网站设计做app的网站有哪些功能
  • 潍坊娜娜网站制作工作啦
  • 权威的唐山网站建设深圳市住房和建设局网站和市住宅租赁管理服务中心