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

视频网站建设技术方案书哪家装修公司口碑好?

视频网站建设技术方案书,哪家装修公司口碑好?,网站开发注册个体工商,上海平台公司【Redis】Redis分片集群 文章目录【Redis】Redis分片集群1. 搭建分片集群1.1 分片集群结构1.2 搭建分片集群1.2.1 集群结构1.2.2 准备实例和配置1.2.3 启动1.2.4 创建集群1.2.5 测试2. 散列插槽2.1 总结3. 集群伸缩4. 故障转移4.1 数据迁移5. RedisTemplate访问分片集群1. 搭建…【Redis】Redis分片集群 文章目录【Redis】Redis分片集群1. 搭建分片集群1.1 分片集群结构1.2 搭建分片集群1.2.1 集群结构1.2.2 准备实例和配置1.2.3 启动1.2.4 创建集群1.2.5 测试2. 散列插槽2.1 总结3. 集群伸缩4. 故障转移4.1 数据迁移5. RedisTemplate访问分片集群1. 搭建分片集群 1.1 分片集群结构 主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决 海量数据存储问题高并发写的问题 使用分片集群可以解决上述问题分片集群特征 集群中有多个master每个master保存不同数据每个master都可以有多个slave节点master之间通过ping监测彼此健康状态客户端请求可以访问集群任意节点最终都会被转发到正确节点 1.2 搭建分片集群 1.2.1 集群结构 分片集群需要的节点数量较多这里我们搭建一个最小的分片集群包含3个master节点每个master包含一个slave节点结构如下 这里我们会在同一台虚拟机中开启6个redis实例模拟分片集群信息如下 IPPORT角色192.168.150.1017001master192.168.150.1017002master192.168.150.1017003master192.168.150.1018001slave192.168.150.1018002slave192.168.150.1018003slave1.2.2 准备实例和配置 删除之前的7001、7002、7003这几个目录重新创建出7001、7002、7003、8001、8002、8003目录 # 进入/tmp目录 cd /tmp # 删除旧的避免配置干扰 rm -rf 7001 7002 7003 # 创建目录 mkdir 7001 7002 7003 8001 8002 8003在/tmp下准备一个新的redis.conf文件内容如下 port 6379 # 开启集群功能 cluster-enabled yes # 集群的配置文件名称不需要我们创建由redis自己维护 cluster-config-file /tmp/6379/nodes.conf # 节点心跳失败的超时时间 cluster-node-timeout 5000 # 持久化文件存放目录 dir /tmp/6379 # 绑定地址 bind 0.0.0.0 # 让redis后台运行 daemonize yes # 注册的实例ip replica-announce-ip 192.168.150.101 # 保护模式 protected-mode no # 数据库数量 databases 1 # 日志 logfile /tmp/6379/run.log将这个文件拷贝到每个目录下 # 进入/tmp目录 cd /tmp # 执行拷贝 echo 7001 7002 7003 8001 8002 8003 | xargs -t -n 1 cp redis.conf修改每个目录下的redis.conf将其中的6379修改为与所在目录一致 # 进入/tmp目录 cd /tmp # 修改配置文件 printf %s\n 7001 7002 7003 8001 8002 8003 | xargs -I{} -t sed -i s/6379/{}/g {}/redis.conf1.2.3 启动 因为已经配置了后台启动模式所以可以直接启动服务 # 进入/tmp目录 cd /tmp # 一键启动所有服务 printf %s\n 7001 7002 7003 8001 8002 8003 | xargs -I{} -t redis-server {}/redis.conf通过ps查看状态 ps -ef | grep redis发现服务都已经正常启动 如果要关闭所有进程可以执行命令 ps -ef | grep redis | awk {print $2} | xargs kill或者推荐这种方式 printf %s\n 7001 7002 7003 8001 8002 8003 | xargs -I{} -t redis-cli -p {} shutdown1.2.4 创建集群 虽然服务启动了但是目前每个服务之间都是独立的没有任何关联。 我们需要执行命令来创建集群在Redis5.0之前创建集群比较麻烦5.0之后集群管理命令都集成到了redis-cli中。 1Redis5.0之前 Redis5.0之前集群命令都是用redis安装包下的src/redis-trib.rb来实现的。因为redis-trib.rb是有ruby语言编写的所以需要安装ruby环境。 # 安装依赖 yum -y install zlib ruby rubygems gem install redis然后通过命令来管理集群 # 进入redis的src目录 cd /tmp/redis-6.2.4/src # 创建集群 ./redis-trib.rb create --replicas 1 192.168.150.101:7001 192.168.150.101:7002 192.168.150.101:7003 192.168.150.101:8001 192.168.150.101:8002 192.168.150.101:80032Redis5.0以后 我们使用的是Redis6.2.4版本集群管理以及集成到了redis-cli中格式如下 redis-cli --cluster create --cluster-replicas 1 192.168.150.101:7001 192.168.150.101:7002 192.168.150.101:7003 192.168.150.101:8001 192.168.150.101:8002 192.168.150.101:8003命令说明 redis-cli --cluster或者./redis-trib.rb代表集群操作命令create代表是创建集群--replicas 1或者--cluster-replicas 1 指定集群中每个master的副本个数为1此时节点总数 ÷ (replicas 1) 得到的就是master的数量。因此节点列表中的前n个就是master其它节点都是slave节点随机分配到不同master 运行后的样子 这里输入yes则集群开始创建 通过命令可以查看集群状态 redis-cli -p 7001 cluster nodes1.2.5 测试 尝试连接7001节点存储一个数据 # 连接 redis-cli -p 7001 # 存储数据 set num 123 # 读取数据 get num # 再次存储 set a 1结果悲剧了 集群操作时需要给redis-cli加上-c参数才可以(表示集群模式) redis-cli -c -p 7001这次可以了 2. 散列插槽 Redis会把每一个master节点映射到0~16383共16384个插槽hash slot上查看集群信息时就能看到 数据key不是与节点绑定而是与插槽绑定。redis会根据key的有效部分计算插槽值分两种情况 key中包含{}且“{}”中至少包含1个字符“{}”中的部分是有效部分key中不包含“{}”整个key都是有效部分 例如key是num那么就根据num计算如果是{itcast}num则根据itcast计算。计算方式是利用CRC16算法得到一个hash值然后对16384取余得到的结果就是slot值。 注一个插槽并不代表一个key一个插槽可以存储多个key。 2.1 总结 Redis如何判断某个key应该在哪个实例 将16384个插槽分配到不同的实例。根据key的有效部分计算哈希值对16384取余。余数作为插槽寻找插槽所在实例即可。 如何将同一类数据固定的保存在同一个Redis实例中 这一类数据使用相同的有效部分例如key都以{typeId}为前缀。 3. 集群伸缩 redis-cli --cluster提供了很多操作集群的命令可以通过下面方式查看 比如添加节点的命令 4. 故障转移 当集群中有一个master宕机会发生什么呢 首先是该实例与其它实例失去连接然后是疑似宕机 最后是确定下线自动提升一个slave为新的master 4.1 数据迁移 利用cluster failover命令可以手动让集群中的某个master宕机切换到执行cluster failover命令的这个slave节点实现无感知的数据迁移。其流程如下 手动的Failover支持三种不同模式 缺省默认的流程如图1~6步force省略了对offset的一致性校验takeover直接执行第5步忽略数据一致性忽略master状态和其他master的意见 5. RedisTemplate访问分片集群 RedisTemplate底层同样基于lettuce实现了分片集群的支持而使用的步骤与哨兵模式基本一致 引入redis的starter依赖配置分片集群地址配置读写分离 1)引依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId /dependency2配置 spring:redis:cluster:nodes: # 指定分片集群的每一个节点信息- 192.168.150.101:7001- 192.168.150.101:7002- 192.168.150.101:7003 - 192.168.150.101:8001- 192.168.150.101:8002- 192.168.150.101:80033配置读写分离 //配置读写分离 Bean public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer() {return clientConfigurationBuilder - clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED); }
http://www.hkea.cn/news/14327854/

相关文章:

  • 又一个wordpress网站关于企业网站建设的建议
  • 龙湖地产 网站建设网站建设框架构建
  • wordpress 转换成帝国新网网站内部优化
  • 中学生制作网站建设银行网站怎么取消短信服务
  • 网站建设价格需要多少钱一份完整的市场调查方案
  • 制作网站的网页如何申请免费的网站空间
  • 长春网站建设专业公司网络营销模式的优缺点分析
  • 网站怎样被百度收录深圳专门做seo的公司
  • 网站开发大揭秘wordpress实时交流插件
  • 自己公司内网网站和外网怎么做同步南京建网站公司
  • ui设计做兼职的网站有哪些中小企业有哪些公司
  • 360免费建站方法简约大气网站模板
  • 企业网站优化推广wordpress服务器系统
  • discuz可以做商城网站吗门户网站规划
  • 网站开发的技术选型wordpress html压缩
  • 网站网上预定功能怎么做美术类网站建设费用
  • 企业网站的功能模块仿造整个网站
  • 淘宝怎么建立自己的网站米问外贸论坛
  • 我要表白网站在线制作济宁网站建设
  • 网站在线设计杭州注册公司流程
  • 如皋建设网站江苏网站建设费用
  • 招聘网站建设维护想做电商需要投资多少钱
  • 境外网站搭建国外网址导航wordpress模版
  • 手机怎么注册自己的网站哈尔滨可以做网站的公司
  • 三角镇建网站公司做中介卖房子开哪个网站
  • 网上建立网站郑州做网站 熊掌号
  • 沭阳网站建设多少钱关键词是在网站后台做的吗
  • 建设部科研申报网站用着不好西安网站制作顶尖
  • 网站各类备案ppt素材免费网站
  • 手机网站建设规划图wordpress英文显示改中文