主从复制

  • 主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库
  • 从数据库一般都是只读的,并且接收主数据库同步过来的数据
  • 一个master可以拥有多个slave,但是一个slave只能对应一个master

哨兵模式

  • 监控主从数据库是否正常运行
  • master出现故障时,自动将slave转化为master
  • 多哨兵配置的时候,哨兵之间也会自动监控
  • 多个哨兵可以监控同一个redis

集群模式

两台虚拟机CentOS搭建3 master、3 salve 环境。

(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/

(3)创建 Redis 节点

  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                                        //端口7000,7002,7003

  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   //集群的配置  配置文件首次启动自动生成 7000,7001,7002

  cluster-node-timeout  15000                //请求超时  默认15秒,可自行设置

  appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志 

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

(4)启动各个节点

  第一台机器上执行

  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

(5)检查 redis 启动情况

  ps -aux| grep redis

(6)需要安装 ruby

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

  gem install redis

(7)创建集群

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

  redis-trib.rb  create  --replicas  1  192.168.31.245:7000 192.168.31.245:7001  192.168.31.245:7002 192.168.31.210:7003  192.168.31.210:7004  192.168.31.210:7005

(8)集群验证

  在第一台机器上连接集群的7002端口的节点,在另外一台连接7005节点,连接方式为 redis-cli -h 192.168.31.245 -c -p 7002  ,加参数 -C 可连接到集群,因为上面 redis.conf 将 bind 改为了ip地址,所以 -c 参数不可以省略。在7005节点执行命令  set hello world ,然后在另外一台7002端口,查看 key 为 hello 的内容, get hello 。

redis三种集群策略的更多相关文章

  1. Redis三种集群模式介绍

    三种集群模式 redis有三种集群模式,其中主从是最常见的模式. Sentinel 哨兵模式是为了弥补主从复制集群中主机宕机后,主备切换的复杂性而演变出来的.哨兵顾名思义,就是用来监控的,主要作用就是 ...

  2. 一文掌握Redis的三种集群方案

    在开发测试环境中,我们一般搭建Redis的单实例来应对开发测试需求,但是在生产环境,如果对可用性.可靠性要求较高,则需要引入Redis的集群方案.虽然现在各大云平台有提供缓存服务可以直接使用,但了解一 ...

  3. redis的三种集群方式

    redis有三种集群方式:主从复制,哨兵模式和集群. 1.主从复制 主从复制原理: 从服务器连接主服务器,发送SYNC命令: 主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用 ...

  4. Redis实战(十三)Redis的三种集群方式

    序言 能聊聊redis cluster集群模式的原理吗 资料 https://www.cnblogs.com/51life/p/10233340.html Redis 集群分片原理

  5. redis解决方案之三种集群模式的概念与部署

    上篇文章为大家总结了redis命令并讲述了持久化,今天我们来看一下redis的三种集群模式:主从复制,哨兵集群,Cluster集群 本篇文章先介绍redis-cluster集群模式,然后再依次介绍它的 ...

  6. Redis进阶实践之十 Redis主从复制的集群模式

    一.引言        Redis的基本数据类型,高级特性,与Lua脚本的整合等相关知识点都学完了,说是学完了,只是完成了当前的学习计划,在以后的时间还需继续深入研究和学习.从今天开始来讲一下有关Re ...

  7. Spring Boot(十三):整合Redis哨兵,集群模式实践

    前面的两篇文章(Redis的持久化方案, 一文掌握Redis的三种集群方案)分别介绍了Redis的持久化与集群方案 -- 包括主从复制模式.哨兵模式.Cluster模式,其中主从复制模式由于不能自动做 ...

  8. Redis源码阅读(三)集群-连接初始化

    Redis源码阅读(三)集群-连接建立 对于并发请求很高的生产环境,单个Redis满足不了性能要求,通常都会配置Redis集群来提高服务性能.3.0之后的Redis支持了集群模式. Redis官方提供 ...

  9. k8s 上部署 Redis 三主三从 集群

    目录 介绍 为什么要使用Redis? 什么是Redis群集? 在Kubernetes中部署Redis集群 从 GitHub 上下载: 创建pv 创建statefulset 创建service 初始化 ...

随机推荐

  1. File Browser文件资源服务器

    要是想一键启动的,这里有个封装版本的,上传到服务器,执行sh命令就能直接启动,也可以修改配置 链接:https://pan.baidu.com/s/1oVP5DrEQSV9hQmnF2bzM9A提取码 ...

  2. dplyr

    The d is for dataframes, the plyr is to evoke pliers. Pronounce however you like. dplyr包可用于处理 R 内部或者 ...

  3. eureka中显示有服务但是通过ribbon调用显示No instances available for service-hello的问题

    一,问题 采取eureka集群.客户端通过Ribbon调用服务,Ribbon端报下列异常 ? 1 2 3 4 5 6 7 java.net.UnknownHostException: SERVICE- ...

  4. 阿里P8架构师深度概述分布式架构

    简介 作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议室上滔滔不绝,如若无人,让不懂技术 ...

  5. T-MAX——团队展示

    第一次团队博客:百战黄沙穿金甲 基础介绍 这个作业属于哪个课程 2019秋福大软件工程实践Z班 这个作业要求在哪里 团队作业第一次-团队展示 团队名称 T-MAX 这个作业的目标 展现团队成员的风采, ...

  6. React 版本16.9.0 中配置路由以及路由传参

    我的脚手架版本如下: "dependencies": { "antd": "^3.21.4", "jquery": &q ...

  7. stream_context_create解析

    (PHP 4 >= 4.3.0, PHP 5, PHP 7) stream_context_create — 创建资源流上下文 说明¶ stream_context_create ([ arra ...

  8. 浅析String.intern()方法

    1.String类型“==”比较样例代码如下:package com.luna.test;public class StringTest { public static void main(Strin ...

  9. 推荐一个web字体转换工具TTF转SVG

    推荐一个web字体转换工具:https://www.fontsquirrel.com/tools/webfont-generator

  10. Running MYSQL 5.7 By Bash On Ubuntu On Windows:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

    root@PC-RENGUOQIANG:/usr/sbin# /etc/init.d/mysql start * Starting MySQL database server mysqld [ OK ...