Linux 安装Redis<集群版>(使用Mac远程访问)
阅读本文需要先阅读安装Redis<准备>
一 架构细节
所有的redis节点彼此互联(PING-PONG机制) 内部使用二进制协议优化传输速度和带宽
节点的fail是通过集群中超过半数的节点检测失效时才生效
客户端与redis节点直连 不需要中间代理层 客户端不需要连接集群所有节点 连接集群中任何一个可用节点即可
redis-cluster把所有的物理节点映射到[0-16383]slot上 cluster负责维护(redis集群中内置了16384个哈希槽 当需要在redis集群中放置一个key-value时 redis先对key使用crc16算法算出一个结果 然后把结果对16384求余数 这样每个key都会对应一个编号在0-16383之间的哈希槽 redis会根据节点数量大致均等的将哈希槽映射到不同的节点)


redis集群中至少应该有三个节点 要保证集群的高可用 需要每个节点有一个备份机
redis集群至少需要6台服务器
这里我准备了6台服务器
120.79.191.xxx 39.108.121.xxx 120.77.148.xxx 39.108.162.xxx 120.79.62.xxx 112.74.54.xxx
二 在六台服务器上分别安装运行Redis
redis依赖
yum install gcc-c++
解压
cd redis压缩包所在目录
tar -xvf redis-4.0.10.tar.gz
编译
cd redis解压包内部 -> cd /hy/redis-4.0.10
make
make install PREFIX=/usr/local/redis
配置文件准备
cp /hy/redis-4.0.10/redis.conf /usr/local/redis/bin
编辑(根据key修改value)
vim /usr/local/redis/bin/redis.conf
# 注释掉bind
# bind 127.0.0.1
# 设置后台启动
daemonize yes
# 设置集群密码
masterauth redis12345
# 设置单机密码
requirepass redis12345
# 开启集群
cluster-enabled yes
# 设置集群节点超时
cluster-node-timeout 15000
进入bin目录
cd /usr/local/redis/bin
启动
./redis-server redis.conf
三 选择其中一台服务器配置集群
ruby环境
yum install curl
curl -L get.rvm.io | bash -s stable
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable
source ~/.bashrc
source ~/.bash_profile
source /usr/local/rvm/scripts/rvm
rvm list known
rvm install 2.5.1
rvm use 2.5.1

安装ruby脚本库
cd ruby脚本库压缩包所在目录
gem install redis-4.0.1.gem
编辑(根据key修改value)
vim /usr/local/rvm/gems/ruby-2.5.1/gems/redis-4.0.1/lib/redis/client.rb
:host => "0.0.0.0",
:password => "redis12345",
脚本文件准备
cp /hy/redis-4.0.10/src/redis-trib.rb /usr/local/redis/bin
执行脚本命令
cd /usr/local/redis/bin
./redis-trib.rb create --replicas 1 120.79.191.xxx:6379 39.108.121.xxx:6379 120.77.148.xxx:6379 39.108.162.xxx:6379 120.79.62.xxx:6379 112.74.54.xxx:6379
四 解决大坑
场景: 使用./redis-cli存取数据没问题 使用JedisCluster存取数据时好时坏(部分key会导致Could not get a resource from the pool)
原因: redis集群中某些节点IP是私有IP 所以分配到该节点上的key是访问不到的
解决办法 -> 在六台服务器上分别修改配置
进入bin目录
cd /usr/local/redis/bin
关闭
./redis-cli -a redis12345 shutdown
编辑(将所有节点私有IP换成公网IP 重点关注myself,master或myself,slave 注意每份配置文件要修改的IP不一样)
vim /usr/local/redis/bin/nodes.conf
启动
./redis-server redis.conf
希望道友早日看到 真是大坑...
Linux 安装Redis<集群版>(使用Mac远程访问)的更多相关文章
- Linux 安装Redis<单机版>(使用Mac远程访问)
阅读本文需要先阅读安装Redis<准备> redis依赖 yum install gcc-c++ 解压 cd redis压缩包所在目录 tar -xvf redis-4.0.10.tar. ...
- Linux 安装Redis<准备>(使用Mac远程访问)
阅读本文需要一定的Linux基础 一 Redis简介 redis是用c语言编写的一款开源的高性能键值对(key-value)数据库 它通过提供多种键值数据类型来适应不同场景下的存储需求 二 Redis ...
- Linux 安装Zookeeper<单机版>(使用Mac远程访问)
阅读本文需要先阅读安装Zookeeper<准备> 新建目录 mkdir /usr/local/zookeeper 解压 cd zookeeper压缩包所在目录 tar -xvf zooke ...
- Linux 安装FastDFS<单机版>(使用Mac远程访问)
阅读本文需要先阅读安装FastDFS<准备> 一 编译环境 yum install gcc-c++ yum -y install libevent yum install -y pcre ...
- Linux 安装Zookeeper<准备>(使用Mac远程访问)
阅读本文需要安装JDK 一 Zookeeper简介 zookeeper是用java语言编写的一款为分布式应用所设计的协调服务 zookeeper是apacahe hadoop的子项目 使用zookee ...
- Linux 安装FastDFS<准备>(使用Mac远程访问)
阅读本文需要一定的Linux基础 一 FastDFS简介 fastdfs是用c语言编写的一款开源分布式文件系统, fastdfs为互联网量身定制, 充分考虑了冗余备份, 负载均衡, 线性扩容等机制, ...
- LINUX安装REDIS集群
linux安装单机版redis已经在另一篇文章说过了,下边来搞集群,环境是新浪云服务器: redis3.0以后开始支持集群. 前言:redis用什么做集群? 用一个叫redis-trib.rb的rub ...
- Redis系列---安装redis单机版02
本章将带领大家一步一步安装Redis单机版(Redis从3.0版本后就开始支持集群了,集群将会后边章节带领大家操作) 准备环境: Centos 6.X redis3.+版本(自行下载,redis 的版 ...
- Linux安装Redis步骤和make遇到的坑
Linux安装Redis服务步骤 1.获取redis资源 cd /usr/local wget https://mirrors.huaweicloud.com/redis/redis-6 ...
- Linux安装redis服务器
Linux安装redis服务器 初次接触,这里简单的说下我遇到的情况以及安装方法,当然也是参考了诸位大神的. 确定虚拟机的主机IP. 1)首先需要一个linux虚拟机,确定虚拟机的ip ,输入命令:# ...
随机推荐
- js replace替换一段文本中所有的相同字符
在html<textarea>标签中回车换行的代码是: \n,html编辑器的回车换行是:\r\n或是\n. 下图是存入后台的<textarea>的文本,需要在页面上显示出来, ...
- PAT——1061. 判断题
判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分. 输入格式: 输入在第一行给出两个不超过100的正整数N和M,分别是学生人数和判断题数量.第二行给出M个不超过5的正 ...
- 在金融服务计算中,必须要使用BigDecimal
在Java程序开发过程中,比较初级(工作经验受限)的开发人员,把注意力全部放在了一些高大上的新技术中,往往忽略了一些初级问题.. 金融服务系统中,对金额的敏感至关重要,账户余额.还款金额.代收本金.代 ...
- 3.5mm手机插孔自制万能遥控器
电视机 空调等遥控器用5MM LED发射二极管 940nm红外发射管 50只 拍一份就是100只 包邮 电压:1.1-1.4v 电流:20mA 发射角度:45°
- vue 父子组件的生命周期顺序
一.加载渲染过程 父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount ...
- koa中静态文件资源中间件实现
项目实践过程中,会使用非常多的静态资源,怎样可以直接在浏览器中访问到这些静态资源 const fs = require('fs'); const path = require('path'); mod ...
- C语言数据结构与算法之深度、广度优先搜索
一.深度优先搜索(Depth-First-Search 简称:DFS) 1.1 遍历过程: (1)从图中某个顶点v出发,访问v. (2)找出刚才第一个被顶点访问的邻接点.访问该顶点.以这个顶点为新的顶 ...
- C#的Dispose模式复习
http://www.cnblogs.com/DebugLZQ/archive/2012/08/28/2659189.html http://www.cnblogs.com/tsoukw/archiv ...
- 几个并发的术语解释——QPS,TPS,PV
从英文全称翻译出字面意思就OK啦! PV=page view TPS=transactions per second QPS=queries per second RPS=requests per ...
- 20155231 实验二 Java面向对象程序设计
20155231 java实验一 Java开发环境的熟悉 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 完成实验.撰写实验 ...