从redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。

1、所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。
     2、节点的fail是通过集群中超过半数的节点检测失效时才生效。
     3、客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。
     4、redis-cluster把所有的物理节点映射到[0-16383]slot上(不一定是平均分配),cluster 负责维护node<->slot<->value。
     5、Redis集群预分好16384个桶,当需要在 Redis 集群中放置一个 key-value 时,根据 CRC16(key) mod 16384的值,决定将一个key放到哪个桶中。

该段引用:https://blog.csdn.net/z15732621582/article/details/79121213

windows下集群的安装:

1:安装redis

2:在一台windows上安装多个实例

复制C:\Program Files\Redis目录下的redis.windows-service.conf文件修改为redis.8085.conf并修改其中内容:

# 本地数据库名称 dbfilename dump-6380.rdb

# 日志文件 logfile "Logs/server_log_6380.txt"

# 日志输出 syslog-enabled yes

# 登录认证密码,三个实例可设置为一样的,推荐分别设置 requirepass 123456

注册服务

redis-server.exe --service-install redis.8085.conf --service-name redis8085

启动该服务

redis-server.exe --service-start --service-name redis6380

cmd执行命令测试登录

redis-cli.exe -h 127.0.0.1 -p 6380

删除实例服务则执行

redis-server.exe --service-uninstall --service-name redis6380

3:配置ruby相关支持

redis的集群使用  ruby脚本编写,所以系统需要有 Ruby 环境 ,下载地址 http://dl.bintray.com/oneclick/rubyinstaller/:rubyinstaller-2.3.3-x64.exe

安装时3个选项都勾选

安装Redis的Ruby驱动redis-xxxx.gem

下载地址 https://rubygems.org/pages/download, 下载后解压,当前目录切换到解压目录中,如 D:\Program Files\redis\rubygems-2.6.12 然后在命令行执行  ruby setup.rb。

然后GEM 安装 Redis :切换到redis安装目录,需要在命令行中,执行 gem install redis

安装集群脚本redis-trib

下载地址  https://raw.githubusercontent.com/antirez/redis/unstable/src/redis-trib.rb

创建Redis集群

  • 复制C:\Program Files\Redis目录下的redis.windows-service.conf文件,复制多个修改位redis.8083.conf、redis.8084.conf、redis.8085.conf
  • 修改里面内容如下:
  • port 6380       #端口号
    loglevel notice    #日志的记录级别,notice是适合生产环境的
    logfile "Logs/redis6380_log.txt"      #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录
    syslog-enabled yes                         #是否使用系统日志
    syslog-ident redis6380                   #在系统日志的标识名
    appendonly yes                              #数据的保存为aof格式
    appendfilename "appendonly.6380.aof"    #数据保存文件
    cluster-enabled yes                                    #是否开启集群
    cluster-config-file nodes.6380.conf
    cluster-node-timeout 15000
    cluster-slave-validity-factor 10
    cluster-migration-barrier 1
    cluster-require-full-coverage yes
  • 保存之后,创建服务,执行代码:
  • redis-server.exe --service-install redis.8083.conf --service-name redis8083
    redis-server.exe --service-install redis.8084.conf --service-name redis8084
    redis-server.exe --service-install redis.8085.conf --service-name redis8085
  • 执行集群操作:
  • redis-trib.rb create --replicas 0 127.0.0.1:8083 127.0.0.1:8084 127.0.0.1:8085
  • 检验是否真的创建成功,输入以下命令:redis-trib.rb check 127.0.0.1:8083
  • 创建完成

操作集群

  1. 使用Redis客户端Redis-cli.exe来查看数据记录数,以及集群相关信息:
  2. C:/Program Files/Redis/redis-cli.exe -c -p 8083
  3. dbsize   //查看记录总数
  4. cluster info   //可以从客户端的查看集群的信息

参考博客:

https://www.cnblogs.com/tommy-huang/p/6240083.html

redis集群及相关的使用的更多相关文章

  1. 深入浅出—Redis集群的相关详解

    前言: 这篇文章主要介绍了Redis集群的相关,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值. 注意!要求使用的都是redis3.0以上的版本,因为3.0以上增加了red ...

  2. laravel项目利用twemproxy部署redis集群的完整步骤

    Twemproxy是一个代理服务器,可以通过它减少Memcached或Redis服务器所打开的连接数.下面这篇文章主要给大家介绍了关于laravel项目利用twemproxy部署redis集群的相关资 ...

  3. Redis集群学习笔记

    Redis集群学习笔记 前言 最近有个需求,就是将一个Redis集群中数据转移到某个单机Redis上. 迁移Redis数据的话,如果是单机Redis,有两种方式: a. 执行redis-cli shu ...

  4. Redis 集群搭建(基于Linux)

    一.基础环境 1.虚拟机 VMware 15.x 2.Linux系统,用的是Centos7的Linux系统 3.Redis数据库版本 5.0.3 二.Redis集群简介 1.背景 Redis在3.0版 ...

  5. Redis集群~StackExchange.redis连接Sentinel服务器并订阅相关事件(原创)

    回到目录 对于redis-sentinel我在之前的文章中已经说过,它是一个仲裁者,当主master挂了后,它将在所有slave服务器中进行选举,选举的原则当然可以看它的官方文章,这与我们使用者没有什 ...

  6. redis集群相关

    1.主从数据库配置 为master数据库添加slave数据库只需要在从数据库的配置中添加配置: slaveof 主数据库地址 主数据库端口 当然,也可以通过命令: redis-server --por ...

  7. Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)

    一.应用场景介绍 本文主要是介绍Redis集群在Linux环境下的安装讲解,其中主要包括在联网的Linux环境和脱机的Linux环境下是如何安装的.因为大多数时候,公司的生产环境是在内网环境下,无外网 ...

  8. Redis集群维护、运营的相关命令与工具介绍

    Redis集群的搭建.维护.运营的相关命令与工具介绍 一.概述 此教程主要介绍redis集群的搭建(Linux),集群命令的使用,redis-trib.rb工具的使用,此工具是ruby语言写的,用于集 ...

  9. Redis集群案例与场景分析

    1.背景 Redis的出现确实大大地提高系统大并发能力支撑的可能性,转眼间Redis的最新版本已经是3.X版本了,但我们的系统依然继续跑着2.8,并很好地支撑着我们当前每天5亿访问量的应用系统.想当年 ...

随机推荐

  1. Jupyter Notebook启动不会自动打开浏览器,每次都要自己打开浏览器输入网址

    今天在使用jupyter 时,已启动服务,但每次都需要手动去浏览器 输入网址才可以, 最好找了好久才解决了. 去cmd 命令窗口执行jupyter notebook --generate-config ...

  2. 20165314 [第二届构建之法论坛] 预培训心得(Java版)

    安装IDEA配置JDKsourcepath啥的之前已经弄好了 克隆项目 emmm这次的代码托管部分好像比之前做的要简单,之前还要git config啥的,还有就是git clone不会提示要输入账号密 ...

  3. youtube-dl下载youtube视频时查看分辨率以及选择分辨率下载

    1.查看分辨率: youtube-dl -F https://www.youtube.com/watch?v=_NMf1TpiFwY 2.根据分辨率下载,比如下载1280*720的mp4,前面的数字是 ...

  4. 项目必备!永无 bug 注释

    佛祖保佑 永无bug 代码注释 // // _oo0oo_ // o8888888o // 88" . "88 // (| -_- |) // 0\ = /0 // ___/`-- ...

  5. 一、Spring Boot 入门

    1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 2014,martin fowler 微服务: ...

  6. Python3的桌面程序开发利器:Eric6的环境搭建、使用

    本文旨在通过一个简单的demo,介绍基于Python3.PyQT5的环境下开发桌面应用程序的一种方案,当然开发Python的桌面应用程序不止是PyQT 这一种方案,还可以使用Python自带的Tkin ...

  7. QT杂记(网上资料整理而成)

    1.新建工程时,Qwidget和Qdialog和Qmianwindow三者的区别? QWidget是所有图形界面的基类QMainWindow是一个提供了菜单.工具条的程序主窗口QDialog是对话框. ...

  8. Go语言基础之time包

    Go语言基础之time包 时间和日期是我们编程中经常会用到的,本文主要介绍了Go语言内置的time包的基本用法. Go语言中导入包 Go语言中使用import关键字导入包,包的名字使用双引号(”)包裹 ...

  9. ICL2019E

    https://www.codechef.com/ICL2019/problems/ICL1906  两个整数,[0,1e5]操作1是让两个数同时减1(只有都大于0的时候才可以用)操作2可以让一个数乘 ...

  10. Visual Studio 2012编译的程序无法在XP下运行的解决办法【转】

    最近看到一篇<Windows编程革命简史>,想到以前刚开始用VS2012的时候,编译的程序在其他人那无法运行,一查才知道是VS2012本身不支持XP.当然现在微软早已在VS2012 Upd ...