zoukankan      html  css  js  c++  java
  • 【Redis】集群教程(Windows)

    概述

    Redis Cluster provides a way to run a Redis installation where data is automatically sharded across multiple Redis nodes

    Redis集群提供一个在多个Redis节点数据自动共享的方式,简单来说就是添加服务器的数量,达到

    • 高可用,让Redis服务长时间有效运行,不会因为硬件/软件问题导致不可用
    • 可扩展性,动态添加节点/删除节点,达到增加性能/减少服务器资源
    • 分布式,节点可以不是
    • 容错,若其中一台服务器故障挂了Redis也能继续使用(前提是有从节点并且可用)

    Redis集群数据分片

    Redis 集群没有使用一致性hash, 而是引入了 哈希槽的概念.

    Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽.集群的每个节点负责一部分hash槽,举个例子,比如当前集群有3个节点,那么:

    • 节点 A 包含 0 到 5500号哈希槽.
    • 节点 B 包含5501 到 11000 号哈希槽.
    • 节点 C 包含11001 到 16384号哈希槽

    这种结构的好处就是非常容易增加/删除节点,并且不会影响集群的使用

    • 增加节点,将原来节点的分配部分哈希槽给新节点
    • 删除节点,将删除的节点哈希槽分配给现有的节点上即可

    Redis集群节点通讯

    因为Redis集群是把数据分布存放在不同客户端,这样做的好处就是减少每台机器的压力,提高并发处理能力,因为我们只要进入任一节点,即可使用整个集群,这就需要节点之间互相通讯,这个是Redis内部处理。

    Every Redis Cluster node requires two TCP connections open. The normal Redis TCP port used to serve clients, for example 6379, plus the port obtained by adding 10000 to the data port, so 16379 in the example

    每一个Redis集群节点都是需要两个端口,一个用于客户端连接,一个用于节点数据传输(Ping-Pong机制),数据端口是在客户端口的基础上加10000,例如,端口6379,数据端口16379,所以在多台机器部署集群需要注意防火墙是否把数据屏蔽 。

    环境准备

    1.安装Redis  下载地址

    2. 安装Ruby,因为Redis集群管理是用ruby开发  下载地址

    3. 下载edis-trib.rb文件,放在Redis安装文件夹内   下载地址

    4. 安装Ruby的Redis驱动,直接在cmd执行(安装的时候把Ruby放在环境变量,否则进到Bin执行)    

    gem install redis

    出现Successfully installed 代表安装成功

    搭建Redis集群

    Redis集群至少需要3个节点,就按最少的3个节点搭建一个集群

    1. 准备3个配置文件,修改各自的端口和appendfilename,当然如果在3台机器上运行,什么都不需要修改

    port 6379
    cluster-enabled yes
    cluster-config-file nodes.6379.conf  
    cluster-node-timeout 5000
    appendonly yes
    appendfilename "appendonly.6379.aof"

    2. 准备bat文件启动3个redis节点(非必须,可以手动cmd启动,配置相应配置文件),bat文件需要在redis安装目录执行

    title redis-cluster
    start redis-server.exe redis.6379.conf
    start redis-server.exe redis.6380.conf
    start redis-server.exe redis.6381.conf

    3. 用redis-trib创建集群,在cmd执行

    redis-trib.rb create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381

    执行完成,输入yes更新配置文件,最终输出各个节点信息,哈希槽分配情况。

     

    至此,Redis集群已经搭建好,这里只有3个主节点,若想从节点,只需多加3个Redis节点,命令加上--replicas参数就可以。

    测试Redis集群

    进入redis-cli集群模式

    redis-cli -c

    可以看出,写入读取,Redis根据Key计算的hash值在各个节点自动重定向

    打开刚刚开启的几个Redis实例,可以看出他们之前一直在不断通讯

     

  • 相关阅读:
    申港集中运营平台Linux测试环境架构搭建
    收获,不止oracle
    Oracle函数
    Apache+php安装和配置 windows
    mysql for windows(服务器)上的配置安装--实例
    软件工程实践总结--爬山成长
    Alpha版本十天冲刺——Day 8
    Alpha版本十天冲刺——Day 2
    软件产品案例分析--K米
    第二次结对编程作业——毕设导师智能匹配
  • 原文地址:https://www.cnblogs.com/WilsonPan/p/12643221.html
Copyright © 2011-2022 走看看