1 基本信息

  • 3台服务器(CentOS7.3)
192.168.1.101 node101
192.168.1.102 node102
192.168.1.103 node103

2 单机 安装 Redis

  • 安装依赖

配置yum源,详见: [Linux]CentOS7搭建/配置:YUM仓库/源[本地源/Web源(Apache HTTP(D))/自建源仓库] - 博客园

yum -y install gcc gcc-c++ net-tools tcl
  • 下载 Redis安装包

下载redis安装包到/opt/目录下 + 安装到/usr/local/下

cd /opt
wget http://download.redis.io/releases/redis-5.0.5.tar.gz cp /opt/redis-5.0.5.tar.gz /usr/local
tar -zxvf /usr/local/redis-5.0.5.tar.gz -C /usr/local/ #解压后的存放目录: /usr/local/redis-5.0.5/
-C : 指定解压后存放的路径
  • 编译&安装
[编译]
cd /usr/local/redis-5.0.5/deps
make hiredis jemalloc linenoise lua geohash-int cd /usr/local/redis-5.0.5
make && make install
注: make #等待编译完成即可,未报错即进行下一步
注: make install #安装,执行make install的时候会将src下面的几个命令复制到/usr/local/bin/下 [安装]
cd /usr/local/redis-5.0.5/utils
./install_server.sh
  • 初步配置
redis_port=6379
设置临时变量,以便后续调用其值
cp /usr/local/redis-5.0.5/redis.conf /etc/redis/redis_port.conf
sed -i "s/127.0.0.1/0.0.0.0/g" /etc/redis/$redis_port.conf
注: sed 's/要被取代的字串/新的字串/g' ; bind 0.0.0.0 : 允许与任何主机通信
vi /etc/redis/redis_port.conf
bind 192.168.0.101/102/103 # 本机ip
daemonize yes # 后台运行
cluster-enabled yes # 启用集群 service redis_$redis_port restart
安装压缩包存放路径: /opt/redis-5.0.5.tar.gz
安装路径 : /usr/local/redis-5.0.5/* Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Copied /tmp/6379.conf => /etc/init.d/redis_6379
  • 运行redis

因为redis-server命令在/usr/local/bin目录里面,而该目录又配置在PATH中,所以可以像执行ls、mkdir等命令的方式去执行redis-cli或者redis-server等命令。

redis-server                        # 在任意目录下运行 (方式1)

/usr/local/redis-5.0.5/src/redis-server   # 在redis目录下运行 (方式2) 

redis-server /etc/redis/6379.conf  # 指定redis.conf文件启动 (方式3)

service redis_6379 restart

2 配置Redis集群

3台机器均需如下操作

  • 配置防火墙
systemctl start firewalld
firewall-cmd --permanent --zone=public --add-port=6379/tcp
ss -lntp
"master"
关闭端口
firewall-cmd --permanent --zone=public --remove-port=6379/tcp
firewall-cmd --permanent --zone=public --add-port=16379/tcp
Redis集群通信时用
systemctl restart firewalld
  • 安装集群相关依赖
yum -y install ruby rubygems
gem install redis
安装Redis客户端 for ruby

[若执行"gem install redis"出现如下信息时,可通过如下4步来尝试解决]

ERROR: Could not find a valid gem 'redis' (>= 0), here is why:Unable to download data from https://rubygems.org/ - no such name (https://rubygems.org/latest_specs.4.8.gz)

1 下载、上传到/opt/dataeye/redis/redis-3.3.0.gem (下载地址: http://rubygems.org/downloads/redis-3.3.0.gem)

2 cd  /opt/dataeye/redis/
3 yum -y install zlib-devel
gem的依赖
4 gem install redis-3.3.0.gem
  • 创建集群
[推荐]
redis-cli --cluster create 192.168.1.101:6379 192.168.1.102:6379 192.168.1.103:6379 [不被推荐/已废弃]X
cd /usr/local/redis-5.0.5/src/
./redis-trib.rb create 192.168.1.101:6379 192.168.1.102:6379 192.168.1.103:6379

3 验证集群可用性

3.1 查看集群节点信息及状态

cluster info
cluster nodes

3.2 数据同步一致性验证

[node102]

[root@node102 src]# redis-cli -h 192.168.1.101 -c
192.168.1.101:6379> set name sdc_test
OK
192.168.1.101:6379> get name
"sdc_test"
192.168.1.101:6379> exit

[node101]

[root@node101 src]# redis-cli -h 192.168.1.102 -c
192.168.1.102:6379> get name
-> Redirected to slot [5798] located at 192.168.1.101:6379
"sdc_test"
192.168.1.101:6379> set name "sdc_test2~~~~~~~~"
-> Redirected to slot [5798] located at 192.168.1.101:6379
OK
192.168.1.101:6379> exit

[node103]

[root@node103 redis]# redis-cli -h 192.168.1.102 -c
192.168.1.102:6379> get name
-> Redirected to slot [5798] located at 192.168.1.101:6379
"sdc_test2~~~~~~~~"
192.168.1.102:6379> exit

4 参考文献

[Linux/Redis]搭建Redis集群的更多相关文章

  1. Linux下搭建tomcat集群全记录(转)

    本文将讲述如何在Linux下搭建tomcat集群,以及搭建过程中可能的遇到的问题和解决方法.为简单起见,本文演示搭建的集群只有两个tomact节点外加一个apache组成,三者将安装在同一机器上:ap ...

  2. Linux下搭建tomcat集群全记录

    (转) Linux下搭建tomcat集群全记录 2011-10-12 10:23 6133人阅读 评论(1) 收藏 举报 tomcatlinuxapacheinterceptorsession集群 1 ...

  3. Linux下搭建Hadoop集群

    本文地址: 1.前言 本文描述的是如何使用3台Hadoop节点搭建一个集群.本文中,使用的是三个Ubuntu虚拟机,并没有使用三台物理机.在使用物理机搭建Hadoop集群的时候,也可以参考本文.首先这 ...

  4. Linux上搭建Hadoop集群

    本文将为初学者的搭建简单的伪分布式集群,将搭建一台虚拟机,用于学习Hadoop 工具:vm虚拟机,centOS7,jdk-8,Hadoop2.7,xftp,xshell 用户:在虚拟机中创建一个had ...

  5. 170711、Linux下搭建MySQL集群

    一.MySQL集群简介 1.什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing).分布式节点架构的存储方案,其目的是提供容错性和高性能. 数据更新使用读已提交隔离级别(r ...

  6. linux系统搭建zookeeper集群

    转载至:https://blog.csdn.net/weixin_38111957/article/details/82927878 一.引言 今天咱们就来搭建一下zookeeper集群,当然搭建集群 ...

  7. Linux下搭建ZooKeeper集群

    摘要 Zookeeper是针对大型分布式系统的高可靠的协调系统.它基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题. ...

  8. Linux下搭建mpi集群(ubuntu下用虚拟机测试)

    一 建立SSH连接(无密码登陆) 1 SSH连接的简单介绍 SSH 为 Secure Shell 的缩写,中文翻译为安全外壳协议,建立在应用层,是一种远程连接安全协议.传统的telnet,pop,ft ...

  9. Linux下搭建Hadoop集群(Centos7.0)

    Hadoop集群安装 概述 集群 cluster,将很多任务进程分布到多台计算机上:通过联合使用多台计算机的存储.计算能力完成更庞大的任务.为了实现无限量的存储和计算能力,在生产环境中必须使用集群来满 ...

  10. Linux系统搭建Hadoop集群

    一.环境说明 IP地址 主机名 备注 操作系统 192.168.92.11 hserver1 namenode Ubuntu 16.04 192.168.92.12 hserver2 datanode ...

随机推荐

  1. layui相关问题总结

    1.layui table回显选中 1) radio: done:function(res, curr, count){ for(var i = 0; i < res.data.length; ...

  2. 软件工程作业:个人项目—wc项目

    软件工程作业:个人项目-WC项目 项目相关要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程 ...

  3. css穿透

    https://www.cnblogs.com/linjiangxian/p/13183412.html

  4. linux 学习之awk

    awk 笔记 awk可以截取列 如 ll | awk '{print $3}' 获取第三列内容 参数 -F 指定分隔符 如 ls | wak -F "." '{print $1}' ...

  5. L02.从图灵机到通用计算机

    将程序载入到内存(存储器)中,用一个指针指向它, 再载入到cpu(控制器)中进行解释执行   *(取指执行,产生结果) 取指执行 = 控制器从存储器中取出数据后,分析指令,运算器执行逻辑运算. PC= ...

  6. Hyper-V 直连主机USB设备

    因为授权问题不让用 Vmware 了.所以换成微软自带的 Hyper V 但是碰到一个很头痛的问题,就是外部设备没法像 Vmware 那样直接连接到虚拟机里面,很多第三方设备没法调试了. 找了很久终于 ...

  7. 入门文章学习(一)-Beginner Tutorial

    Abstract: 参照"背景知识查阅"一文的学习路径,对几篇文章的学习做了记录.这是"Beginner Tutorial"一文的学习笔记. 文章链接: htt ...

  8. C++ 几款IDE和编程平台的选择分析

    最近闲来无事,就研究了一下几个编程平台和IDE.首先,我必须强调一下,这些方案研究并不一定适用于商业公司内部编程平台选择,而是给个人学习或者闲暇之余把玩用的.主要从以下几个指标考量:使用体验.跨平台. ...

  9. 用echarts做兼容ie8的三测单(体温单) 代码全

    $.fn.extend({ /** * * @param { * UrineOutputData: 尿量数据 * OutputData: 出量数据 * InputData: 入量数据 * shitDa ...

  10. buuoj.cn-web刷题记录-笔记

    1.万能密码 [极客大挑战 2019]EasySQL username=admin' or '1'='1&password=admin' or '1'='1 因为拼接为sql 会变成  sel ...