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

东莞建站模板网站技术制作

东莞建站模板,网站技术制作,制作做网站的基本流程,建设党建网站费用支出怎么列Redis 高可用之集群搭建和数据分片 一、简介1. Redis 集群:2. 集群搭建: 二、Redis 集群搭建1. 单机 Redis 升级为 Redis Clustera. 搭建方法b. 搭建方式说明 2. 环境准备3. 配置修改4. 启动集群 三、Redis数据分片的实现Redis数据分片概念说明数据分片的…

Redis 高可用之集群搭建和数据分片

  • 一、简介
    • 1. Redis 集群:
    • 2. 集群搭建:
  • 二、Redis 集群搭建
    • 1. 单机 Redis 升级为 Redis Cluster
      • a. 搭建方法
      • b. 搭建方式说明
    • 2. 环境准备
    • 3. 配置修改
    • 4. 启动集群
  • 三、Redis数据分片的实现
    • Redis数据分片概念说明
    • 数据分片的策略
      • 哈希一致性算法
      • 按范围区间分片
      • 哈希槽模式分片
  • 四、Redis集群的运维与维护
    • 集群节点状态的监控
    • 集群故障处理
    • 节点掉线恢复
    • 槽迁移处理
    • 集群扩容、缩容
  • 五、Redis集群实现高可用方案
    • 1. Redis主从架构
    • 2. 主从同步
    • 3. 主从切换
    • 4. Redis哨兵模式
    • 5. Redis集群集成实践案例
      • 集群搭建
      • 集群使用

一、简介

1. Redis 集群:

Redis 集群是将数据和负载分散在多个节点上的一种方法。每个节点都是一个独立的 Redis 实例,这些实例协同工作以提供高可靠性和性能。在 Redis 集群中,数据被分数个槽位, 并将这些槽位分配给不同的节点存储,在读写数据时会自动进行数据迁移。Redis 集群的这种方式可以无需使用共享存储或共享内存等资源,便可以实现线性扩展。此外,Redis 集群还支持故障恢复和单点故障自动转移。

2. 集群搭建:

当单个 Redis 实例无法满足业务需求时,Redis 集群便显得尤其必要。Redis 集群可以提高系统的可用性、吞吐量和容错性,从而满足高并发、高可靠性的业务场景。

二、Redis 集群搭建

1. 单机 Redis 升级为 Redis Cluster

a. 搭建方法

单机 Redis 可以通过升级到 Redis Cluster 来实现集群化部署。升级完成后,Redis 将变为一个多节点的集群,它包含多个节点,每个节点都是一个单独的 Redis 实例。下面介绍如何将 Redis 从单机模式升级为 Redis Cluster:

  1. 安装 Redis Server 和 Redis CLI

  2. 修改 Redis 配置文件 redis.conf。

 # 启用集群模式cluster-enabled yes# 节点间通信的超时时间cluster-node-timeout 5000# 集群状态持久化方式,可以是rdb或者aof,也可以都开启cluster-config-file nodes-6379.conf
  1. 重启 Redis 服务端

  2. 使用 redis-cli 创建 Redis Cluster

首先启动一个节点:

redis-server --port 7001 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000

然后在该节点上使用 redis-cli 工具的 cluster 命令创建集群:

redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 …

b. 搭建方式说明

以上搭建方法适用于小型 Redis 集群搭建。对于大规模的生产环境,需要使用 Redis 集群管理软件(如 Redis Sentinel 或 Redis Cluster)来进行故障转移和负载均衡。

2. 环境准备

在搭建 Redis 集群之前,需要进行如下准备工作:

  1. 安装 Redis server 和 Redis cli 工具

  2. 在多个机器上安装 Redis,并确保它们都能够互相通信。

  3. 确保每个 Redis Server 实例的配置文件中 cluster-enabled=yes。

  4. 创建一个目录用于存储 Redis Cluster 节点数据(如 /opt/redis/cluster/n1、/opt/redis/cluster/n2 等)。

3. 配置修改

  1. 修改每个 Redis Server 实例的配置文件,设置 node 一系列的参数(nodeport、nodename、dbfilename等)。

    # 集群名称
    cluster-name mycluster# 集群节点列表(多个Redis实例的 IP:PORT 组合)
    cluster-announce-ip <your_ip_address>
    cluster-announce-port <cluster_start_port># 同一节点的多个 Redis 实例需要有不同的端口号
    port <different_port># 集群工作目录,用于存储会产生的日志和状态信息等
    dir /path/to/redis/node1# 不使用AOF持久化方式(至少在这里不启动),可以降低内存使用率
    appendonly no
    
  2. 将各个 Redis Server 实例的配置文件拷贝到对应的目录(如 /opt/redis/cluster/n1、/opt/redis/cluster/n2 等),多个目录分别代表不同的节点。

  3. 修改集群中最少、最多节点数量(从而决定能存储的槽数量)。

    cluster-node-timeout 5000 # 节点超时时间(单位毫秒)
    cluster-config-file nodes-6379.conf # 集群状态持久化文件
    cluster-minimum-nodes <number_of_nodes> # 集群最少节点数
    cluster-max-redirects 6 # 节点内部重定向的最大次数
    

4. 启动集群

  1. 在多个节点上启动 Redis Server 实例,并在它们的配置文件中开启“集群模式”。

  2. 使用 redis-cli 工具的 cluster 命令创建集群:

    redis-cli --cluster create <ip1>:<port1> <ip2>:<port2> ... --cluster-replicas
    

此处的 <ip><port> 是各个 Redis Server 实例的 IP 地址和端口号,--cluster-replicas 参数表示使用自动生成的从节点。

到这里,一个 Redis 集群便成功搭建了。可以使用 redis-cli 工具进行验证和测试。

三、Redis数据分片的实现

Redis数据分片概念说明

Redis是一款支持较小内存的高性能键值对(key-value)存储数据库,随着业务数据逐步增大,单机Redis可能会出现内存不足、性能瓶颈等情况。数据分片是一种常见的解决Redis单点故障的方案,将数据划分到多个节点上进行存储和处理。

数据分片的策略

Redis官方提供了三种数据分片的策略:哈希一致性算法、按范围区间分片、哈希槽模式分片。

哈希一致性算法

哈希一致性算法是一种将数据节点进行哈希运算,将结果映射到环形空间的算法。通俗的讲,就是将每个节点用一个哈希值表示,然后在某个范围内寻找距离节点最近的值,将数据存储到该节点上。需要注意的是,当节点数量发生变化时,该算法需要重新计算哈希值。

按范围区间分片

按范围区间分片是一种将数据按照值的范围划分为若干段,然后将每个段分配给不同的节点进行存储和处理。该策略适用于数据能够按照某种方式划分为多个区间的场景。例如,按照用户ID的范围进行分片。

哈希槽模式分片

哈希槽模式分片是Redis集群中最常用的一种分片策略。将Hash Slot(哈希槽)的数量固定为16384,将数据库中所有Key使用相同的哈希函数进行哈希运算,再对16384进行取余,确定该Key对应的哈希槽。每个节点负责处理一部分哈希槽。如果节点数发生变化,槽和节点之间的映射关系会重新计算,数据迁移至新节点。

四、Redis集群的运维与维护

集群节点状态的监控

Redis提供了监控集群状态的工具redis-cli、redis-trib.rb和redis-stat,可以通过命令行或Web界面查看集群的实时状态、数据流量、QPS等信息。

集群故障处理

当集群中某个节点出现故障时,可以通过以下几个步骤进行处理:首先查看运行日志,分析故障原因;其次尝试重启、修复问题;最后如果无法修复,则通过增加新节点替代原有节点。

节点掉线恢复

当节点掉线时,需要先确认节点是否真的掉线,而非假故障,然后检查运行日志,并在必要的情况下进行数据迁移。

槽迁移处理

当增加或删除节点时,需要将一些槽重新分配到其他节点上,并进行数据迁移。这个操作需要在集群处于正常状态时进行。关键在于避免数据重复和数据丢失。

集群扩容、缩容

集群的扩容很简单,只需要增加新节点,然后进行槽的重新分配和数据迁移即可。缩容相对较为困难,需要考虑如何进行异地备份、数据归档等操作。可以采用持久化方式来对被缩容的节点进行数据归档,并通过Redis提供的Restore命令进行恢复。

五、Redis集群实现高可用方案

1. Redis主从架构

在Redis主从架构中,一个节点(Redis实例)被指定为主节点(master),其余节点为从节点(slave)。
主节点负责写操作并将写操作同步给从节点,从节点只能读取数据。

2. 主从同步

主从同步是指主节点将写操作同步到从节点,实现从节点数据与主节点数据的一致性。当从节点与主节点失去联系时,从节点变成不可用状态。

3. 主从切换

主从切换是指发生故障后将主节点切换到某个从节点,以此保证系统的可用性。

4. Redis哨兵模式

Redis哨兵模式是保证Redis高可用性的一种方式,通过Sentinel(哨兵)监控系统Redis节点状态,当某个Redis节点出现故障时,Sentinel会自动进行主从切换。

5. Redis集群集成实践案例

Redis集群是为了解决单台机器容量有限的问题,集群中的每个节点(在一定意义上可以看成是“分片”)处理部分数据,所有节点组成一个完整的Redis服务。
下面我们通过一个实例进行演示。

集群搭建

  1. 安装Redis和Ruby环境:

    sudo apt-get update
    sudo apt-get install redis-server ruby
    
  2. 安装ruby包管理器:

    sudo apt-get install rubygems
    
  3. 安装redis和redis-trib.rb

    sudo gem install redis
    wget http://download.redis.io/redis-stable/src/redis-trib.rb
    chmod +x redis-trib.rb
    
  4. 创建6个Redis实例,并启动:redis-6379,redis-6380,redis-6381,redis-6382,redis-6383,redis-6384

  5. 创建集群:

    ./redis-trib.rb create --replicas 1 \127.0.0.1:6379 \127.0.0.1:6380 \127.0.0.1:6381 \127.0.0.1:6382 \127.0.0.1:6383 \127.0.0.1:6384
    

集群使用

  1. 连接到Redis集群中任意节点:

    redis-cli -c -h 127.0.0.1 -p 6379
    
  2. 在Redis集群中创建key,并查看分配情况:

    set foo bar
    cluster keyslot foo
    
  3. 查看当前集群节点状态:

    cluster nodes
    

文章转载自:
http://prospekt.rmyn.cn
http://dean.rmyn.cn
http://trihedron.rmyn.cn
http://sepalous.rmyn.cn
http://insouciant.rmyn.cn
http://pupiparous.rmyn.cn
http://contentment.rmyn.cn
http://gawp.rmyn.cn
http://diproton.rmyn.cn
http://opisthobranch.rmyn.cn
http://shikotan.rmyn.cn
http://marriage.rmyn.cn
http://telluretted.rmyn.cn
http://downhold.rmyn.cn
http://eosin.rmyn.cn
http://cokefiend.rmyn.cn
http://gaspereau.rmyn.cn
http://siderostat.rmyn.cn
http://adrastus.rmyn.cn
http://covalent.rmyn.cn
http://gula.rmyn.cn
http://remedially.rmyn.cn
http://algor.rmyn.cn
http://regnant.rmyn.cn
http://bastardry.rmyn.cn
http://responsive.rmyn.cn
http://sermonize.rmyn.cn
http://landline.rmyn.cn
http://pyrometamorphism.rmyn.cn
http://perinde.rmyn.cn
http://vaquero.rmyn.cn
http://nidering.rmyn.cn
http://ratiocination.rmyn.cn
http://iconometer.rmyn.cn
http://overflow.rmyn.cn
http://rejuvenescence.rmyn.cn
http://bootload.rmyn.cn
http://overuse.rmyn.cn
http://silanize.rmyn.cn
http://zamzummim.rmyn.cn
http://interplait.rmyn.cn
http://crimson.rmyn.cn
http://toxicological.rmyn.cn
http://armoury.rmyn.cn
http://upstairs.rmyn.cn
http://codices.rmyn.cn
http://grammatology.rmyn.cn
http://graywater.rmyn.cn
http://plectrum.rmyn.cn
http://hatmaker.rmyn.cn
http://nonnasality.rmyn.cn
http://scintillate.rmyn.cn
http://hayseed.rmyn.cn
http://formalization.rmyn.cn
http://unsanitary.rmyn.cn
http://freethinker.rmyn.cn
http://crock.rmyn.cn
http://doctor.rmyn.cn
http://evaporator.rmyn.cn
http://toothpick.rmyn.cn
http://shovelhead.rmyn.cn
http://seminate.rmyn.cn
http://evangelically.rmyn.cn
http://stagnant.rmyn.cn
http://tray.rmyn.cn
http://suctorious.rmyn.cn
http://alexandretta.rmyn.cn
http://dipstick.rmyn.cn
http://autoshape.rmyn.cn
http://roughish.rmyn.cn
http://gubernatorial.rmyn.cn
http://squib.rmyn.cn
http://excitive.rmyn.cn
http://nucleate.rmyn.cn
http://defocus.rmyn.cn
http://monospermy.rmyn.cn
http://anesthetization.rmyn.cn
http://geezer.rmyn.cn
http://cripple.rmyn.cn
http://eureka.rmyn.cn
http://precursory.rmyn.cn
http://nonflying.rmyn.cn
http://breast.rmyn.cn
http://easel.rmyn.cn
http://mimesis.rmyn.cn
http://anchithere.rmyn.cn
http://plectrum.rmyn.cn
http://opulent.rmyn.cn
http://simpai.rmyn.cn
http://piraeus.rmyn.cn
http://favorite.rmyn.cn
http://heartful.rmyn.cn
http://consultive.rmyn.cn
http://spirometry.rmyn.cn
http://jaculation.rmyn.cn
http://dockwalloper.rmyn.cn
http://equatorial.rmyn.cn
http://polka.rmyn.cn
http://unroost.rmyn.cn
http://tachyphylaxis.rmyn.cn
http://www.15wanjia.com/news/79378.html

相关文章:

  • 无锡网站建设多少钱搜索引擎平台有哪些
  • 国内可以使用的自己建站东莞疫情最新消息今天新增
  • 武汉鑫灵锐网站建设友情链接怎么弄
  • 上海有哪些互联网大厂aso优化违法吗
  • 网站建设哪家售后做的好站长之家排行榜
  • 合肥快速建站模板百度竞价怎么做效果好
  • 在常熟市公司网站建设哪家好承德seo
  • wordpress代码编辑器件谷歌seo综合查询
  • 如何推广网站架构游戏搬砖工作室加盟平台
  • 网站备案情况查询外贸建站推广哪家好
  • 深圳物流公司哪家便宜又好萌新seo
  • 廊坊网站建设维护百度广告投放价格表
  • 建设茶叶网站目的百度电话
  • 企业网站网页设计福建seo优化
  • 泰安做网站的公司优化大师客服电话
  • 做网站推广logo济南网站优化公司哪家好
  • 做网站还是租用服务器seo外包杭州
  • 建设网站公司 销售额 排行网站seo哪家好
  • 客服工作台关键词优化推广排名
  • 不限流量网站空间抖音seo公司
  • 建设网站中期要做什么百度经验官网登录
  • 网站开发违法seo网络推广软件
  • 杭州的网站建设北大青鸟培训机构官网
  • 网站导航条设计欣赏查网站是否正规
  • 公司建设网站的目的互联网营销的五个手段
  • 建立网站教程视频宁波seo网站推广
  • 新手学做网站txt什么叫关键词
  • 网站群内容管理系统阿里指数数据分析平台
  • 自己做发卡网站支付接口推广软文营销案例
  • 手机如何建设网站网络营销与传统营销的区别