介绍安装环境与版本

用两台虚拟机模拟6个节点,一台机器3个节点,创建出 3 master、3 salve 环境。

redis 采用 redis-3.2.4 版本。

两台虚拟机都是 CentOS ,一台 CentOS7 (IP:192.168.1.245),一台 CentOS7(IP:192.168.1.210) 。

安装过程:

1. 下载并解压

cd /root/software
wget http://download.redis.io/releases/redis-3.2.4.tar.gz
tar -zxvf redis-3.2.4.tar.gz

2. 编译安装

cd redis-3.2.4
make && make install

3. 将 redis-trib.rb 复制到 /usr/local/bin 目录下

cd src
cp redis-trib.rb /usr/local/bin/ 

4. 创建 Redis 节点

首先在 192.168.1.245 机器上 /root/software/redis-3.2.4 目录下创建 redis_cluster 目录

mkdir redis_cluster

在 redis_cluster 目录下,创建名为7000、7001、7002的目录,并将 redis.conf 拷贝到这三个目录中

mkdir 7000 7001 7002
cp redis.conf redis_cluster/7000
cp redis.conf redis_cluster/7001
cp redis.conf redis_cluster/7002

分别修改这三个配置文件,修改如下内容

port  7000                      //端口号
bind 本机ip                      //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize    yes                //允许redis后台运行
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002
cluster-enabled  yes                      //开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf      //集群的配置  配置文件首次启动自动生成
cluster-node-timeout  15000               //请求超时  默认15秒,可自行设置
appendonly  yes                           //开启aof日志

接着在另外一台机器上(192.168.1.210),的操作重复以上三步,只是把目录改为7003、7004、7005,对应的配置文件也按照这个规则修改即可。

5. 启动各个节点

第一台机器上执行
redis-server redis_cluster/7000/redis.conf
redis-server redis_cluster/7001/redis.conf
redis-server redis_cluster/7002/redis.conf另外一台机器上执行
redis-server redis_cluster/7003/redis.conf
redis-server redis_cluster/7004/redis.conf
redis-server redis_cluster/7005/redis.conf 

6. 检查 redis 启动情况

ps -ef | grep redis
root      61020      1  0 02:14 ?        00:00:01 redis-server 127.0.0.1:7000 [cluster]
root      61024      1  0 02:14 ?        00:00:01 redis-server 127.0.0.1:7001 [cluster]
root      61029      1  0 02:14 ?        00:00:01 redis-server 127.0.0.1:7002 [cluster] netstat -tnlp | grep redis
tcp        0      0 127.0.0.1:17000             0.0.0.0:*                   LISTEN      61020/redis-server
tcp        0      0 127.0.0.1:17001             0.0.0.0:*                   LISTEN      61024/redis-server
tcp        0      0 127.0.0.1:17002             0.0.0.0:*                   LISTEN      61029/redis-server
tcp        0      0 127.0.0.1:7000              0.0.0.0:*                   LISTEN      61020/redis-server
tcp        0      0 127.0.0.1:7001              0.0.0.0:*                   LISTEN      61024/redis-server
tcp        0      0 127.0.0.1:7002              0.0.0.0:*                   LISTEN      61029/redis-server

7.创建集群

Redis 官方提供了 redis-trib.rb 这个工具,就在解压目录的 src 目录中,第三步中已将它复制到 /usr/local/bin 目录中,可以直接在命令行中使用了。使用下面这个命令即可完成安装。

redis-trib.rb  create  --replicas  1  192.168.1.245:7000 192.168.1.245:7001  192.168.1.245:7002 192.168.1.210:7003  192.168.1.210:7004  192.168.1.210:7005

这个工具是用 ruby 实现的,所以需要安装 ruby。安装命令如下:

yum -y install ruby ruby-devel rubygems rpm-build
gem install redis

8. 集群验证

在第一台机器上连接集群的7002端口的节点,在另外一台连接7005节点,连接方式为 redis-cli -h 192.168.1.245 -c -p 7002  ,加参数 -C 可连接到集群,因为上面 redis.conf 将 bind 改为了ip地址,所以 -h 参数不可以省略。

在7005节点执行命令  set hello world ,然后在另外一台7002端口,查看 key 为 hello 的内容, get hello  ,查看执行结果为 world。

简单说一下原理:

redis cluster在设计的时候,就考虑到了去中心化,去中间件,也就是说,集群中的每个节点都是平等的关系,都是对等的,每个节点都保存各自的数据和整个集群的状态。每个节点都和其他所有节点连接,而且这些连接保持活跃,这样就保证了我们只需要连接集群中的任意一个节点,就可以获取到其他节点的数据。

Redis 集群没有并使用传统的一致性哈希来分配数据,而是采用另外一种叫做哈希槽 (hash slot)的方式来分配的。redis cluster 默认分配了 16384 个slot,当我们set一个key 时,会用CRC16算法来取模得到所属的slot,然后将这个key 分到哈希槽区间的节点上,具体算法就是:CRC16(key) % 16384。所以我们在测试的时候看到set 和 get 的时候,直接跳转到了7000端口的节点。

Redis 集群会把数据存在一个 master 节点,然后在这个 master 和其对应的salve 之间进行数据同步。当读取数据时,也根据一致性哈希算法到对应的 master 节点获取数据。只有当一个master 挂掉之后,才会启动一个对应的 salve 节点,充当 master 。

需要注意的是:必须要3个或以上的主节点,否则在创建集群时会失败,并且当存活的主节点数小于总节点数的一半时,整个集群就无法提供服务了。

Redis 集群搭建和简单使用相关推荐

  1. Redis集群搭建与简单使用

    2019独角兽企业重金招聘Python工程师标准>>> 介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采 ...

  2. Windows平台下的Redis集群搭建(简单有效)

    1. 下载redis Windows版本下载:https://github.com/MicrosoftArchive/redis/tags 然后进入目录执行命令redis-server.exe red ...

  3. redis 集群搭建_一文轻松搞懂redis集群原理及搭建与使用

    转载:https://juejin.im/post/5ad54d76f265da23970759d3 作者:SnailClimb 这里总结一下redis集群的搭建以便日后所需同时也希望能对你有所帮助. ...

  4. redis集群搭建及设置账户(转)

    Redis集群搭建以及为集群设置密码 介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-3.2.4 版本. ...

  5. Redis集群搭建-韩国庆

    认真一步一步搭建下来,就可以成功.... Redis-cluster集群架构讲解 redis集群专业名词称之为Redis-cluster,redis集群是从3.0版本以后才有的概念,也就是说在3.0之 ...

  6. 系统学习redis之二——redis集群搭建

    redis单点部署: 安装命令: # cd /usr/local/ # wget http://download.redis.io/releases/redis-4.0.1.tar.gz #下载安装包 ...

  7. 转:Redis 集群搭建详细指南

    转自: https://www.cnblogs.com/mafly/p/redis_cluster.html [README] 非常棒的一篇文章,感谢作者的分享: 先有鸡还是先有蛋? 最近有朋友问了一 ...

  8. Linux Redis集群搭建与集群客户端实现

    硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本:3.2.1 Redis已经成功安装,安装路径为/home/idata/yangf ...

  9. 云服务器 Redis 集群搭建

    云服务器 Redis 集群搭建 主从复制架构搭建 集群架构介绍 环境准备 安装 配置及启动 测试 Sentinel (哨兵)架构搭建 集群架构介绍 环境准备 Sentinel 配置 Sentinel ...

最新文章

  1. 有声专栏-宏基因组专业词汇讲解
  2. 独家 | Deepnote测评:数据科学家的新IDE
  3. 风暴数码论坛教程--apk和odex的介绍和合并
  4. iphone定时关机_成都苹果维修点教你iPhone手机死机、关不了机怎么处理?
  5. [Winform]WebKit.Net使用
  6. java 部署环境_Centos7部署JAVA环境
  7. Deepin系统安装后相关设置与环境搭建
  8. Leetcode每日一题:204.count-primes(计数质数)
  9. pcie总线连接两台电脑_基于PCIE总线多主互连系统的设计与实现
  10. 软件测试启航篇:测试的分类
  11. 电脑主页面上的计算机没了,电脑界面上的internet explorer 没有了
  12. 阿里云因 bug 禁用内部 IP 导致链路不通,造成大规模故障
  13. 网络风险成为中国企业新挑战
  14. Linux Ubuntu从零开始部署web环境及项目 -----部署项目 (三)
  15. RequireJS进阶(一)
  16. Microsoft SQL Server 自定义函数整理大全
  17. BD和ts是什么意思
  18. 3.3 RESET and Initialization Procedure
  19. 分享2个堪称黑科技的Ai一键抠图网站 让你秒变PS抠图大神
  20. 【转载】Android 第三方ROM定制之适配谷歌Play Store

热门文章

  1. Json 时间 转换为 Javascript 时间 Date Jquery 调用WCF
  2. 构建高性能ASP.NET站点 网站优化需要考虑的方面
  3. C# 捕获系统闪退BUG
  4. 菜单项onCreateOptionsMenu()和onOptionsItemSelected()的使用
  5. Android资源文件在配置文件中的使用
  6. Java中多线程并发处理方式
  7. 机器人出魔切还是三相_哇!电站凝汽器清洗居然可以用机器人啦
  8. file watchers怎么默认打开_Python读写文件怎么和我之前学的不一样?
  9. 树莓派通过VNC连接时分辨率太低
  10. Linux虚拟机改中文