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

redis单点部署:

安装命令:

# cd /usr/local/   
# wget http://download.redis.io/releases/redis-4.0.1.tar.gz        #下载安装包
# yum -y install gcc psmisc                #安装依赖包
# tar xf redis-4.0.1.tar.gz               
# cd /usr/local/redis-4.0.1/
# make MALLOC=libc      
# make & make install
# cp redis.conf redis.conf.bak    
# vim redis.conf       #修改配置文件

因为是测试部署,这里的配置文件就多采用默认的配置了。只改了后台启动的配置

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

启动服务:

# /usr/local/redis-4.0.1/src/redis-server /usr/local/redis-4.0.1/redis.conf                 #启动redis

验证启动

# ps -ef|grep redis  
# src/redis-cli

执行命令测试服务的可用性
系统学习redis之二——redis集群搭建

简单的单点redis就搭建好了。
配置文件的详解,可以参考http://blog.sina.com.cn/s/blog_13e807ed00102wzc9.html

redis集群搭建(三主三从)

测试服务器IP及对应的hostname:

IPhostname
10.0.0.101test101
10.0.0.102test102
10.0.0.103test103

安装步骤:
1、将上面三台机器,都部署好一个6379,一个6389端口的redis,但redis.conf的配置需要改下面几项(因为实验,其他都采用默认配置了,没有改):
1)修改redis.conf,修改下面这几项:

bind 10.0.0.101(10.0.0.102/10.0.0.103改成对应服务器的IP)
port 6379
daemonize yes
dir /opt/redis
cluster-enabled yes
cluster-node-timeout 15000

2)复制一份redis.conf改名为redis2.conf。再修改下面两项:

 port 6389dir /opt/redis2

3)创建数据目录:

# mkdir /opt/redis
# mkdir /opt/redis2

4)启动服务:

# /usr/local/redis-4.0.1/src/redis-server /usr/local/redis-4.0.1/redis.conf
# /usr/local/redis-4.0.1/src/redis-server /usr/local/redis-4.0.1/redis2.conf

5)检查服务:
系统学习redis之二——redis集群搭建
系统学习redis之二——redis集群搭建
系统学习redis之二——redis集群搭建

2、安装集群工具:
1)安装依赖包

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

2、重新使用rvm安装ruby
因为yum安装的ruby最高只能是2.0版本,但是redis集群要求更高的版本,所以这里需要重新安装ruby,否在在 gem install redis的时候会报错

# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
# curl -sSL https://get.rvm.io | bash -s stable
# source /usr/local/rvm/scripts/rvm 
# rvm list known
# rvm install 2.4.1
# rvm use 2.4.1
# rvm use 2.4.1 --default
# rpm -qa ruby
# yum remove -y ruby-2.0.0.648-33.el7_4.x86_64
# ruby --version

3、安装并启动redis

# gem install redis
# src/redis-trib.rb create --replicas 1 10.0.0.101:6379 10.0.0.101:6389 10.0.0.102:6379 10.0.0.102:6389 10.0.0.103:6379 10.0.0.103:6389

4、验证集群的正确性

# src/redis-cli -c -p 6379  
# src/redis-cli -c -p 6389

有个问题,因redis.conf里面的bind配置的10.0.0.101,而redis默认的端口IP是127.0.0.1,所以这里会报错“Could not connect to Redis at 127.0.0.1:6379: Connection refused”,把bindIP改成0.0.0.0不会报错。
或者用/usr/local/redis-4.0.1/src/redis-trib.rb check 10.0.0.101:6379检查集群:
系统学习redis之二——redis集群搭建

redis-trib.rb具有以下功能:

create:创建集群
check:检查集群
info:查看集群信息
fix:修复集群
reshard:在线迁移slot
rebalance:平衡集群节点slot数量
add-node:将新节点加入集群
del-node:从集群中删除节点
set-timeout:设置集群节点间心跳连接的超时时间
call:在集群全部节点上执行命令
import:将外部redis数据导入集群

至此,集群就部署完成了

转载于:https://blog.51cto.com/10950710/2162777

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

业务技术协同线上化的研发管理实战

摘要:2017年1月13日举办的【云栖计算之旅】线下沙龙第4期研发管理专场,阿里巴巴B2B事业群产品专家代平为大家带来了题为业务技术协同线上化的研发管理实战的演讲。本文主要从管理产品研发的理念开始谈起,着重说明了云效指挥部的六大步骤&…

Linux中写脚本,同时去开启我们自己设定的多个服务(含定时脚本实现)

场景介绍: 在Linux中,我们通常开启服务需要使用systemctl start 服务名 命令,这样,如果开启一个服务还好,但是如果同时开启多个服务,难免会感到麻烦,这时,我们可以自定义一个脚本&a…

负载均衡环境搭建实战之nginx和tomcat

Linux基本环境负载均衡的环境需要在linux下搭建完成,所以有一个基础的linux系统是必须的,这里建议大家按照http://edu.51cto.com/course/10209.html中的基础linux环境来安装,这样能少走弯路。JDK安装1、 下载对应版本的Java1.7,a)…

桌面应用如何判断win11操作系统

背景Windows 11 操作系统已经正式发布快有一年了,在 .Net 开发中,我们获取操作系统版本,经常使用 Environment.OSVersion.Version.Major 和 Minor(6.1 Windows 7, 10.0 Windows 10),但是当 Win11 出现以后…

Nginx 网站定义自己的错误页面

场景: 为了给用户较好的交互和感官,我们通常需要对错误页面进行友好提示。 环境介绍: LNMP(linux(centos7.4)Nginx Mysql5.6 php7.0)实现: 这里,我直接对nginx的子配置文…

车辆调度

为什么80%的码农都做不了架构师?>>> 车辆调度系统 大体上分为4个部分吧 1.调度车辆:你调度的时候需要的车辆,方便给你运输啥的 2.调度任务:你为啥会调度车辆,肯定要有一个任务 3.客户:那这个…

Nginx 设置,设置已经解析的域名,在nginx中没有定义相应server时的默认访问

场景介绍: 因为业务需求,我们需要对域名进行解析,这里我对域名进行了如下解析但是,因为业务需求,我可能在nginx中只定义了kuman.xiaobudiu.top 和 www.xiaobudiu.top 的相应server的子配置文件,如图那么问题…

第一次作业--四则运算题目生成程序

功能简介: 1.获取用户所要生成算术的个数 2.随机生成算式和式子的答案 3.生成算式和答案的txt文件来保存算式和答案 思路: 生成里的运算数分为三个部分,整数,如果是分数就再分为分子和分母,然后为这三个部分创建数组&a…

ABP vNext微服务架构详细教程(补充篇)——单层模板(上)订正篇

简介在之前的《ABP vNext微服务架构详细教程》系列中,我们已经构建了完整的微服务架构实例,但是在开发过程中,我们会发现每个基础服务都包含10个类库,这是给予DDD四层架构下ABP的实现方案,但是实际使用中我们会发现&am…

javascript基础修炼(4)——UMD规范的代码推演

javascript基础修炼(4)——UMD规范的代码推演 1. UMD规范 地址:https://github.com/umdjs/umd UMD规范,就是所有规范里长得最丑的那个,没有之一!!!它是为了让模块同时兼容AMD和CommonJs规范而出现的&#x…

Missing artifact log4j:log4j:bundle:1.2.17

为什么80%的码农都做不了架构师?>>> maven引入log4jjar包出现Missing artifact log4j:log4j:bundle:1.2.17,解决方法是去掉bundle,其他的解决方案可以参考maven log4j.jar问题 Maven使用log4j可能会有协议上的问题 如果log4j的版…

PHPStorm 配置远程服务器文件夹在本地windows镜像,实现代码自动同步(类似于Samba架构文件同步功能)

场景介绍: 这是一种类似samba架构,也和 filezillaxshell 模式相类似的代码文件同步的模式,但是却更加优雅,也更加方便简洁。环境介绍: 本地windows端:编辑器phpstorm 远程Linux端:centos&#x…

反向ajax实现

在过去的几年中,web开发已经发生了很大的变化。现如今,我们期望的是能够通过web快速、动态地访问应用。在这一新的文章系列中,我们学习如何使用反 向Ajax(Reverse Ajax)技术来开发事件驱动的web应用,以此来…

linux系统启动流程及常见问题的解决

一、前言计算机开机是一个神秘的过程。我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面。然而,计算机开机又是个异常脆弱的过程,我们满心期望的登录界面可能并不会出现,而是一个命令行…

使用.NET开发一个屏幕OCR工具

本文将介绍使用.NET开发的一款桌面截图 OCR 工具,软件已开源,地址:https://github.com/sangyuxiaowu/Snipping_OCR背景因为不同地方人们的使用习惯不同,国内可能截图更多的是使用QQ,微信等即时聊天工具提供的截图功能。…

Linux开启fileinfo扩展

在项目初始部署环境的时候,可能考虑的并不全面,就会少装一些扩展,这里讲解如何添加fileinfo扩展1、找到php安装的压缩包2、将压缩包cp到 /data目录下,并解压 cp php-7.0.30.tar.gz /data cd /data tar -zxvf php-7.0.30.tar.gz…

Layui版本的WPF开源控件库-Layui-WPF

大家好,我是沙漠尽头的狼。今天介绍一款Layui风格的WPF开源控件库,仓库信息如下:仓库地址:https://github.com/Layui-WPF-Team/Layui-WPF仓库截图:Layui-WPF关于Layui请点击此链接[1]了解,本文不做介绍&…

Mycat 之 通过Keepalived 实现高可用

一、系统拓扑图 一、操作方法 参考本博客的Nginx Keepalived 实现高可用转载于:https://blog.51cto.com/12965094/2164485

微软产品 .NET 6 迁移之旅

“.NET性能不行!”“.NET有什么像样的产品吗!?”“升级到.NET 6有什么好处!?”……听人扯淡还不如看看微软自己是怎么做的。本文将汇总一下微软的开发博客——这些博客均涉及微软将产品和服务迁移到.NET 6的成果。博客…

Navicat 连接 RDS数据库

场景介绍: 随着业务量的逐渐增加,公司的数据库压力也会逐渐增大,使用自己购买的esc创建的mysql的话,还得考虑相应的dba维护,也比较繁琐,说不定还做的并不完美,这时,RDS就派上用场了&…