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

网站的设计费用海南省生态文明村建设促进会网站

网站的设计费用,海南省生态文明村建设促进会网站,恩施网站建设模板,做网站有没有前景Redis cluster cluster 为无中心#xff0c;分布式 sharding#xff0c;高可用技术架构。 在哨兵 sentinel 机制中#xff0c;可以解决 redis 高可用的问题#xff0c;即当 master 故障后可以自动将 slave 提升为 master 从而可以保证 redis 服务的正常使用。 但是无法解…Redis cluster cluster 为无中心分布式 sharding高可用技术架构。 在哨兵 sentinel 机制中可以解决 redis 高可用的问题即当 master 故障后可以自动将 slave 提升为 master 从而可以保证 redis 服务的正常使用。 但是无法解决 redis 单机写入的瓶颈问题即单机的redis 写入性能受限于单机的内存大小、并发数量、网卡速率等因素因此 redis 官方在 redis 3.0 版本之后推出了无中心架构的 redis cluster 机制在无中心的 redis 集群汇中其每个节点保存当前节点数据和整个集群状态,每个节点都和其他所有节点连接特点如下 1所有 Redis 节点使用(PING 机制)互联 2集群中某个节点的失效是整个集群中超过半数的节点监测都失效才算真正的失效 3客户端不需要 proxy 即可直接连接 redis应用程序需要写全部的 redis 服务器 IP。 4redis cluster 把所有的 redis node 映射到 0-16383 个槽位(slot)上读写需要到指定的 redis node 上进行操作因此有多少个 reids node 相当于 redis 并发扩展了多少倍。 5Redis cluster 预先分配 16384 个(slot)槽位当需要在 redis 集群中写入一个 key -value 的时候会使用 CRC16(key) mod 16384 之后的值决定将 key 写入值哪一个槽位从而决定写入哪一个 Redis 节点上从而有效解决单机瓶颈架构 服务器服务备注192.168.37.17redis启动集群配置192.168.37.27redis启动集群配置192.168.37.37redis启动集群配置192.168.37.47redis启动集群配置192.168.37.57redis启动集群配置192.168.37.67redis启动集群配置 先决条件 1.每个 redis node 节点采用相同的硬件配置、相同的密码 2.每个节点必须开启的参数 cluster-enabled yes #必须开启集群状态开启后 redis 进程会有 cluster 显示 cluster-config-file nodes-6380.conf #此文件有 redis cluster 集群自动创建和维护不需要任何手动操作 3.所有 redis 服务器必须没有任何数据 4.先启动为单机 redis 且没有任何 key value需要使用到集群管理工具 redis-trib.rb这个工具是 redis 官方推出的管理 redis 集群的工具集成在redis 的源码 src 目录下是基于 redis 提供的集群命令封装成简单、便捷、实用的操作工具redis-trib.rb 是 redis 作者用 ruby 开发完成的 redis requires Ruby version 2.3.0。所以进行编译安装。 [rootnode17 src]# pwd /usr/local/srcwget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.5.tar.gz tar -xvf ruby-2.5.5.tar.gz cd ruby-2.5.5/ ./configure make -j 2 make install gem install redis #如果命令执行出错可能是确实必要的安装包修改一下配置文件只需将密码修改为 redis 的密码即可 [rootnode1 redis-4.0.14]# vi /usr/local/lib/ruby/gems/2.5.0/gems/redis-4.1.2/lib/redis/client.rb [rootnode1 redis-4.0.14]# cat /usr/local/lib/ruby/gems/2.5.0/gems/redis-4.1.2/lib/redis/client.rb | grep :password :password 123456,创建集群 [rootnode17 src]# pwd /usr/local/src/redis-4.0.14/src使用 redis 集群管理工具启动 redis 集群, create 代表创建集群 replicas 代表每个redis 主节点有几个从节点最后添加所有的 redis 服务 地址 提示输入时输入 yes 即可./redis-trib.rb create --replicas 1 192.168.37.17:6379 192.168.37.27:6379 192.168.37.37:6379 192.168.37.47:6379 192.168.37.57:6379 192.168.37.67:6379[rootnode17 src]# pwd /usr/local/src/redis-4.0.14/src[rootnode17 src]# ./redis-trib.rb Usage: redis-trib command options arguments ...create host1:port1 ... hostN:portN--replicas argcheck host:portinfo host:portfix host:port--timeout argreshard host:port--from arg--to arg--slots arg--yes--timeout arg--pipeline argrebalance host:port--weight arg--auto-weights--use-empty-masters--timeout arg--simulate--pipeline arg--threshold argadd-node new_host:new_port existing_host:existing_port--slave--master-id argdel-node host:port node_idset-timeout host:port millisecondscall host:port command arg arg .. argimport host:port--from arg--copy--replacehelp (show this help)For check, fix, reshard, del-node, set-timeout you can specify the host and port of any working node in the cluster. #只需要提供任意一个工作node就可以了集群维护 查看集群状态 [rootnode17 src]# redis-cli -a 123456 -h 192.168.37.17 CLUSTER INFO Warning: Using a password with -a option on the command line interface may not be safe. cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 cluster_current_epoch:6 cluster_my_epoch:1 cluster_stats_messages_ping_sent:2310 cluster_stats_messages_pong_sent:2214 cluster_stats_messages_fail_sent:8 cluster_stats_messages_sent:4532 cluster_stats_messages_ping_received:2214 cluster_stats_messages_pong_received:2077 cluster_stats_messages_fail_received:2 cluster_stats_messages_received:4293 查看集群node关系 [rootnode17 src]# redis-cli -a 123456 -h 192.168.37.17 CLUSTER nodes Warning: Using a password with -a option on the command line interface may not be safe. b93be4cd9708c56a817e534c1bd65f1517dfcd2c 192.168.37.27:637916379 master - 0 1568095447000 2 connected 5461-10922 1be5a9efbaeb1e7b2aaac884a51eeeee9044199a 192.168.37.37:637916379 master - 0 1568095443324 3 connected 10923-16383 3be2728c5f006018bc497eec0748a69294170bf9 192.168.37.47:637916379 slave 1be5a9efbaeb1e7b2aaac884a51eeeee9044199a 0 1568095445337 4 connected ad5851cba2caac6c76cfdd6bf1bbb8c457fb8ece 192.168.37.57:637916379 slave 7ba0fcaa8136efed36a1025e09e38a9ea2ea422e 0 1568095444331 5 connected 0bc30fd51b6a49b1f5545de2828e51ba92498b44 192.168.37.67:637916379 slave b93be4cd9708c56a817e534c1bd65f1517dfcd2c 0 1568095447355 6 connected 7ba0fcaa8136efed36a1025e09e38a9ea2ea422e 192.168.37.17:637916379 myself,master - 0 1568095445000 1 connected 0-5460集群运行时间长久之后难免由于硬件故障、网络规划、业务增长等原因对已有集群进行相应的调整 比如增加 Redis node 节点、减少节点、节点迁移、更换服务器等。增加节点和删除节点会涉及到已有的槽位重新分配及数据迁移。 集群动态添加节点 准备两台服务器安装好redis服务。 服务器服务备注192.168.37.77redis启动集群配置192.168.37.87redis启动集群配置 将两台服务器添加到集群 redis-trib.rb add-node new_host:new_port existing_host:existing_port./redis-trib.rb add-node 192.168.37.77:6379 192.168.37.67:6379 ./redis-trib.rb add-node 192.168.37.87:6379 192.168.37.67:6379查看集群状态 [rootnode17 src]# redis-cli -a 123456 -h 192.168.37.17 CLUSTER nodes[rootnode17 src]# redis-cli -a 123456 -h 192.168.37.17 CLUSTER INFO默认添加的节点都是master,希望node87作为node77的从服务器。 查看87号的复制信息 [rootnode87 ~]# redis-cli -a 123456 -h 192.168.37.87 info replication查看77号的ID [rootnode87 ~]# redis-cli -a 123456 -h 192.168.37.87 cluster nodes 04306861ad7bd776e92e54788c453bfa9adbfd4d 192.168.37.77:637916379 master - 0 1568098060056 7 connected设置87号为77号的从 [rootnode87 ~]# redis-cli -a 123456 -h 192.168.37.87 cluster replicate 04306861ad7bd776e92e54788c453bfa9adbfd4d 查看集群状态 [rootnode17 src]# ./redis-trib.rb info 192.168.37.67:6379 192.168.37.77:6379 (04306861...) - 0 keys | 0 slots | 1 slaves. 192.168.37.27:6379 (b93be4cd...) - 0 keys | 5462 slots | 1 slaves. 192.168.37.37:6379 (1be5a9ef...) - 0 keys | 5461 slots | 1 slaves. 192.168.37.17:6379 (7ba0fcaa...) - 0 keys | 5461 slots | 1 slaves. [OK] 0 keys in 4 masters. 0.00 keys per slot on average. 可以看到主从已经配置OK,但是77还没有分配slots。 下面将重新分配槽位使用reshard命令需要清空所有节点数据。然后再重新分配。因此需要提前备份redis数据。 [rootnode17 ~]# ./redis-trib.rb reshard 192.168.37.77:6379平均分配输入4096 输入all 输入yes验证当前集群状态 [rootnode17 src]# ./redis-trib.rb info 192.168.37.17:6379 192.168.37.17:6379 (7ba0fcaa...) - 0 keys | 4096 slots | 1 slaves. 192.168.37.27:6379 (b93be4cd...) - 0 keys | 4096 slots | 1 slaves. 192.168.37.77:6379 (04306861...) - 0 keys | 4096 slots | 1 slaves. 192.168.37.37:6379 (1be5a9ef...) - 0 keys | 4096 slots | 1 slaves. [OK] 0 keys in 4 masters. 0.00 keys per slot on average.集群动态删除节点 添加节点的时候是先添加 node 节点到集群然后分配槽位删除节点的操作与添加节点的操作正好相反是先将被删除的 Redis node 上的槽位迁移到集群中的其他 Redis node 节点上然后再将其删除。 如果一个 Redis node 节点上的槽位没有被完全迁移删除该 node 的时候会提示有数据且无法删除。 删除节点的场景一般是服务器到了3年的服务年限。超过厂商质保期磁盘开始故障。 被迁移Redis服务器必须保证没有数据 ./redis-trib.rb reshard 192.168.37.17:6379How many slots do you want to move (from 1 to 16384)? 4096 #迁移 master 上的多少个槽位What is the receiving node ID? 886338acd50c3015be68a760502b239f4509881c #接收槽位的服务器Source node #1: f4cfc5cf821c0d855016488d6fbfb62c03a14fda #从哪个服务器迁移 4096 个槽位 Source node #2: done #写 done表示没有其他 master 了Do you want to proceed with the proposed reshard plan (yes/no)? yes #是否继续查看迁移后状态 [rootnode17 src]# ./redis-trib.rb info 192.168.37.17:6379 192.168.37.17:6379 (7ba0fcaa...) - 0 keys | 0 slots | 0 slaves. 192.168.37.27:6379 (b93be4cd...) - 0 keys | 4096 slots | 1 slaves. 192.168.37.77:6379 (04306861...) - 0 keys | 8192 slots | 2 slaves. 192.168.37.37:6379 (1be5a9ef...) - 0 keys | 4096 slots | 1 slaves. [OK] 0 keys in 4 masters. 0.00 keys per slot on average.slots迁移后可以在集群中删除节点了 ./redis-trib.rb del-node host:port node_id./redis-trib.rb del-node 192.168.37.77:6379 882e6ed6bd9a6a0d01e95bc1c19e826405853ec5 ./redis-trib.rb del-node 192.168.37.87:6379 882e6ed6bd9a6a0d01e95bc1c19e826405853ec5集群维护之Master宕机 当前架构是三主三从互为跨主机master slave模式测试master宕机后是否自动切换至slave master上测试添加数据 [rootnode77 ~]# redis-cli -a 123456 -h 192.168.37.77 set name mage OKslave上查看 [rootnode57 ~]# redis-cli -a 123456 -h 192.168.37.57 get name (error) MOVED 5798 192.168.37.77:6379 #slave 不提供读写只提供数据备份即 master 选举 master停止redis服务 [rootnode17 src]# ./redis-trib.rb info 192.168.37.27:6379 192.168.37.27:6379 (b93be4cd...) - 0 keys | 4096 slots | 1 slaves. 192.168.37.57:6379 (ad5851cb...) - 1 keys | 8192 slots | 0 slaves. 192.168.37.37:6379 (1be5a9ef...) - 0 keys | 4096 slots | 1 slaves. [OK] 1 keys in 3 masters. 0.00 keys per slot on average.可以看到57已经从slave升级为master,且master可读写重启master后maser77成为了57的从服务器。 集群维护之导入现有Redis数据 ./redis-trib.rb import 方法但是不太好用 其他方案 redis-migrate-tool 官方网址 https://www.oschina.net/p/redis-migrate-tool使用介绍 https://my.oschina.net/u/3023401/blog/2251461
http://www.dnsts.com.cn/news/114543.html

相关文章:

  • 网上效果代码网站可以下载吗wordpress 分类页模板
  • 汕头如何建设网站设计wordpress和淘宝客程序
  • 南平做网站联通套餐
  • 天津个人网站制作郑州网站建设模板
  • 中国建设银行网站慢网站建设项目组织结构图
  • 淄博市建设工程质量协会网站西宁高端网站制作公司
  • 网站空间站如何进行网站维护
  • 烟台网站建设专业臻动传媒珠海斗门建设局网站
  • 公众号授权网站wordpress不跳转页面
  • 郑州做网站公司有哪些网站建设费用申请报告
  • 网站翻页零基础网站建设教学培训
  • 网站设计怎么做才好看wordpress 家园
  • 上海网站建设域名搜索推广
  • 安徽省住房和城乡建设厅网站上海市建筑业官网
  • 智库网站建设方案网盘做电子书下载网站
  • 全国建设注册中心网站网站长尾关键词优化
  • php网站开发专业背景徐州手机网站开发公司电话
  • 哪个网站可以做代码题目长治做网站哪里不错
  • 无锡网站建设价格深圳网站设计哪家快
  • 夏天做那些网站能致富广州微网站制作
  • dns网站建设wordpress安装教程 linux
  • 海南建设网网站软件外包学院
  • 网站首页 关键词wordpress微博登入获取头像
  • 开封府景点网站及移动端建设情况app制作平台排行
  • 电商平台介绍网站模板学校语言文字网站建设
  • 比较厉害的网站制作公司佛山北京网站建设
  • 建设部网站 测绘规章网站建设的可用性
  • 外贸建站与推广如何做人体内脉搏多少是标准的?wordpress 登陆 443
  • 淘宝做网站的店网站开发试验报告
  • 虹口广州网站建设服务好的网站设计