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

网站搜索模块WordPress发图册

网站搜索模块,WordPress发图册,dw网页制作教程主页子页,自己做cdk兑换码网站Redis 集群是 Redis 提供的一种分布式实现#xff0c;用于水平扩展数据存储能力。通过 Redis 集群#xff0c;可以将数据分片存储在多个 Redis 节点上#xff0c;同时提供高可用性和故障转移功能。 分片#xff08;Sharding#xff09;#xff1a; Redis 集群将数据划分…Redis 集群是 Redis 提供的一种分布式实现用于水平扩展数据存储能力。通过 Redis 集群可以将数据分片存储在多个 Redis 节点上同时提供高可用性和故障转移功能。 分片Sharding Redis 集群将数据划分为 16384 个插槽slots每个插槽代表一部分数据。每个 Redis 节点负责一部分插槽。数据键通过哈希函数映射到特定的插槽。 主从复制Replication 每个分片可以有一个主节点和多个从节点。主节点负责处理写请求从节点作为备份提供读取和故障切换。 高可用性 如果主节点故障从节点会自动提升为主节点确保服务可用性。这只限于每个分片的主从节点范围内如果主从节点都挂了那么这个分片上的数据是访问不到的。 一致性模型 Redis 集群采用 最终一致性在网络分区的情况下使用部分可用性但不会丢失数据。 在 Spring Boot 项目中集成 Redis 集群可以使用 Spring Data Redis 来进行配置。 在 Spring Boot 中可以使用 RedisTemplate 来操作 Redis 数据。通过 Lettuce 客户端来实现 Redis 集群中的读写分离可以利用 Lettuce 对读策略ReadFrom的支持将读操作分配到从节点写操作保持在主节点。这适用于 Redis 的主从复制架构。 创建一个配置类用于设置 RedisTemplate。 使用 LettuceConnectionFactory 配置 Redis 连接。设置 ReadFrom 策略选择将读请求发送到从节点。使用 RedisTemplate 执行读写操作Lettuce 会根据配置的 ReadFrom 策略自动选择节点。 配置 LettuceConnectionFactory通过自定义 LettuceConnectionFactory 配置 Redis 集群连接和读策略。 可以将 Redis 集群的配置部分放在 application.yml 文件中使配置更加灵活。 spring:redis:cluster:nodes:- 127.0.0.1:7000- 127.0.0.1:7001- 127.0.0.1:7002timeout: 5000lettuce:read-from: REPLICA_PREFERRED # 优先从从节点读取pool:max-active: 8max-idle: 8min-idle: 0在配置类中读取配置文件 Configuration public class RedisConfig {Value(${spring.redis.cluster.nodes})private ListString clusterNodes;Beanpublic LettuceConnectionFactory redisConnectionFactory() {// 使用配置文件中的 Redis 集群节点信息RedisClusterConfiguration clusterConfig new RedisClusterConfiguration(clusterNodes);LettuceClientConfiguration clientConfig LettuceClientConfiguration.builder()// 使用配置文件中的读取策略.readFrom(ReadFrom.REPLICA_PREFERRED).build();return new LettuceConnectionFactory(clusterConfig, clientConfig);}// 配置 RedisTemplate用于与 Redis 交互Beanpublic RedisTemplateString, Object redisTemplate() {RedisTemplateString, Object template new RedisTemplate();template.setConnectionFactory(redisConnectionFactory());// 设置序列化器template.setKeySerializer(new StringRedisSerializer());template.setValueSerializer(new StringRedisSerializer());template.setHashKeySerializer(new StringRedisSerializer());template.setHashValueSerializer(new StringRedisSerializer());return template;} }read-from 配置项说明 MASTER: 所有操作都在主节点执行默认。MASTER_PREFERRED优先从主节点读取数据如果主节点不可用则从从节点读取。REPLICA: 所有读取操作都从从节点执行。REPLICA_PREFERRED: 优先从从节点读取如果没有可用从节点则读取主节点。ANY: 读取请求可以从任意节点执行包括主节点和从节点。 RedisTemplate 会根据配置的 LettuceConnectionFactory自动进行读写分离。写操作会默认发往主节点而读操作则根据 ReadFrom 策略发往从节点。 在 Redis 集群中为了在执行 Lua 脚本时能够确保操作的多个键位于同一哈希槽中Redis 引入了 哈希标签Hash Tag 的概念。 哈希标签 是一种机制用来告诉 Redis 集群哪些键应该被视为一个整体映射到同一个哈希槽Hash Slot中。哈希标签是通过将键名的一部分用大括号 {} 包围来实现的。Redis 只会对 {} 内部的内容进行哈希计算以决定该键的哈希槽位置。如果你有两个键 key1 和 key2通常它们会映射到不同的哈希槽中。然而如果使用哈希标签例如 user:{123} 和 order:{123}那么 123 部分会被用于哈希计算使这两个键落在同一个哈希槽中。user:{123} 和 order:{123} 将会落在同一个哈希槽。user:123 和 order:123 将可能落在不同的哈希槽中。在 Redis 集群环境中当执行 Lua 脚本时所有涉及的键必须位于同一个哈希槽中否则会报错因为 Redis 集群无法在不同的节点之间自动协调 Lua 脚本。使用哈希标签可以确保多个相关键位于同一哈希槽这样在执行 Lua 脚本时可以正常运行。 在 Redis 集群架构中如果发生数据倾斜即某些节点存储的数据明显多于其他节点这可能会导致部分节点的负载过高影响性能和稳定性。为了解决数据倾斜问题可以采取以下措施 调整哈希槽的分配 Redis 集群中使用哈希槽hash slots来分布数据每个节点管理一定数量的哈希槽。如果某些节点的哈希槽数量明显多于其他节点可能会导致数据倾斜。可以通过 redis-cli --cluster rebalance 命令重新分配哈希槽让数据更均匀地分布在各个节点上。 # node-address:port 表示集群中任一主节点的地址和端口用于连接到 Redis 集群。Redis 会通过这个节点获取集群的状态信息。 # 最终重新平衡哈希槽的分配是针对整个集群的。 redis-cli --cluster rebalance --cluster-use-empty-masters node-address:port添加新的节点增加新的节点可以减轻现有节点的负担并改善数据分布 使用 redis-cli --cluster add-node 命令将新节点加入到集群中。加入新节点后使用 redis-cli --cluster rebalance 来重新平衡数据和哈希槽的分布使得新节点参与数据存储。 迁移数据可以手动或自动将数据从高负载节点迁移到其他节点 使用 redis-cli --cluster reshard 命令将部分哈希槽从高负载节点迁移到其他节点。迁移数据时需要指定源节点、目标节点以及要迁移的哈希槽数量。 redis-cli --cluster reshard node-address:port输入目标哈希槽数量和目标节点Redis 会自动完成迁移。 选择合适的分片键如果数据倾斜是由于分片键选择不合理造成的可以考虑重新选择分片键 使用均匀分布的数据字段作为分片键例如随机数或 UUID而不是用户 ID 等容易造成数据集中化的字段。使用哈希策略来确保分片键的散列值在集群中均匀分布。 监控和优化通过监控工具持续关注 Redis 集群的运行状态及早发现并解决数据倾斜问题 使用 redis-cli --cluster info 或其他 Redis 监控工具来查看每个节点的哈希槽和内存使用情况。借助 INFO 命令获取每个节点的状态信息了解内存和负载分布。定期评估数据分布必要时进行数据迁移或重新分配哈希槽。 在创建 Redis 集群时哈希槽的分配通常是自动进行的但也可以手动分配哈希槽给每个主节点。 首先使用以下命令创建一个 Redis 集群并为每个主节点分配哈希槽。 redis-cli --cluster create \ 192.168.1.1:6379 \ 192.168.1.2:6379 \ 192.168.1.3:6379 \ 192.168.1.4:6379 \ --cluster-replicas 1 \ --cluster-slots 16384此命令将创建一个包含 4 个主节点的 Redis 集群并为每个主节点指定 16384 个哈希槽。 手动分配哈希槽 # 为主节点 1 分配哈希槽 0 - 4095 redis-cli --cluster addslots 192.168.1.1:6379 0 4095# 为主节点 2 分配哈希槽 4096 - 8191 redis-cli --cluster addslots 192.168.1.2:6379 4096 8191# 为主节点 3 分配哈希槽 8192 - 12287 redis-cli --cluster addslots 192.168.1.3:6379 8192 12287# 为主节点 4 分配哈希槽 12288 - 16383 redis-cli --cluster addslots 192.168.1.4:6379 12288 16383
http://www.hkea.cn/news/14329993/

相关文章:

  • 做网站怎么挣钱东莞网站建设网络公司排名
  • iis怎么加载网站seo上词价格
  • 官方网站建设建议免费手机网站商城
  • 安卓手机网站开发vps服务器怎么创建多个网站
  • 好的平面设计作品网站无忧传媒在短视频领域的成就
  • 图像放大网站深圳网站制作必推祥奔科技
  • 用div做网站中间部分网站图片3d显示效果
  • 怎么做网站像淘宝这样的郑州做软件开发的公司
  • 网站站点管理电子类网站建设需要多少钱
  • 望牛墩镇做网站公司英文网站建设
  • 茂名建设公司网站微信开发网站开发
  • 阳泉网站设计wordpress产品展示
  • 做网站攻略做网站什么东西需要费用
  • 网站建设都有那些费用产品网络营销分析
  • 网站上的图文介绍怎么做的响应式网站 向下兼容
  • 世界最受欢迎的免费架站平台网络设计方案书中内容很多
  • 最新电子产品网站模板海南定安建设局网站
  • 开网站做销售网站自动售卡怎么做
  • 网站建设公司电话销售话术搭建什么平台如何表达
  • 尤溪建设局网站服务器网站管理系统
  • 网站的风格指的是什么长尾词和关键词的区别
  • 手机电商网站 模板如何在手机上制作app软件
  • 懒懒淘客怎么做自己的网站私人做网站建设
  • 手机网站运营快照不更新怎么办
  • 宁波网站建设的步骤过程射阳网站开发
  • 视频网站开发工程师wordpress动态
  • 六安开发区网站网络营销公司
  • 经纪公司排名无锡做网站优化多少钱
  • 网站建设的基本过程电商网站前后台模板
  • 网站制作自己做服务器视频做网站背景