文档章节

Linux 安装redis 集群

狂奔的熊二
 狂奔的熊二
发布于 2018/11/30 10:15
字数 1300
阅读 305
收藏 3

Linux环境安装redis集群

[TOC]

安装环境

系统:CentOS release 6.5 (Final)

环境要求:

​ gcc;

​ Ruby:

​ Rubygems:

​ redis-3.X (需要3.0以上版本支持集群)

注意:我测试时连接外网了,如果没有连接外网就需要离线下载所需的依赖,然后上传安装

安装单个redis

注意:这里需要gcc和ruby的环境。安装前需要检查系统是否有gcc和ruby的环境:

  • gcc环境

    gcc用来编译redis的源码,使用gcc -v 查看,

  • ruby 环境

    ruby 用来执行集群的命名,使用ruby -v,gem -v 查看:

安装好上述两个依赖后,现在安装redis.

  1. 创建存放安装包的文件夹,makdir redis。然后cd到该目录,上传下载好的tar.gz文件。然后,执行解压命令
tar zxvf redis-3.2.12.tar.gz 

  1. cd到redis的解压目录,然后执行make && make install 命令安装:

    $ cd /home/redis/redis-3.2.12
    $ make && make install  //make 这里如果不指定PREFIX,默认将安装在/usr/local/bin下,保持默认就好
    

安装成功后,出现如下图:

也可以在/usr/local/bin下查看redis的安装文件。

  1. cd到解压目录,指定配置文件启动。

    redis-server redis.conf
    

注意,这里启动的redis不是后台启动,退出会话后redis会自动退出。通常单机redis我们需要修改如下配置:

 daemonize yes  //默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
 requirepass foobared   //设置客户端连接密码
 port 6379  //指定端口
 bind 127.0.0.1  //绑定的主机地址,如果需要远程连接,则需修改该参数
 protected-mode  yes // 保护模式,如果需要远程连接,则需要修改该参数
 

安装Redis集群

安装集群至少需要三个主节点,三个对应的从节点。防止某个节点挂掉,其他两个节点可以推举其对应得从节点为主节点,一定程度的容错。

这里在同一台机器上安装,生产环境至少需要三台机器安装。创建6个文件分别存放配置信息,文件夹名以端口命名。比如7001-7006。

  1. 使用mkdir命令批量创建文件夹。

  1. 然后我们需要在安装目录复制redis-cli、redis-server、redis.conf 三个配置文件到每个文件夹,用来启动单个redis. 如果安装时没有指定目录,则默认在usr/local/bin 目录下复制redis-cli、redis-server文件,redis.conf在解压的目录可以复制,也可以自己创建。

在复制redis.conf配置文件

  1. 修改每个redis.conf文件
bind 0.0.0.0   //0.0.0.0表示允许所有连接
protected-mode no //保护模式,yes表示不允许远程连接
port 7001  //端口,这里每个配置文件不同
daemonize yes  //以后台方式启动
appendonly yes   //redis 将每一次写操作请求都追加到appendonly.aof 文件中redis重新启动时,会从							该文件恢复出之前的状态。
cluster-enabled yes  //启用集群
cluster-node-timeout 5000  //节点超时时间
  1. 在每个文件下执行redis-server redis.conf 命令。这个可以创建脚本执行比较快。
vim startall.sh 就会打开vim编辑器,创建一个空的文本

这里我每个分别启动,脚本执行不起作用(心累)

  1. 此时,我们进入解压的目录src下,复制redis-trib.rb 文件到redis目录;

  2. 在redis目录执行命令:

    注意:这里--replicas 1 表示每个主数据库拥有从数据库个数为1。master节点不能少于3个。

    如果需要远程访问,这里的命令中127.0.0.1 需要换成服务器的ip地址。否则不能远程访问。

    ./redis-trib.rb  create --replicas  1  127.0.0.1:7001  127.0.0.1:7002  127.0.0.1:7003  127.0.0.1:7004  127.0.0.1:7005  127.0.0.1:7006
    

各种报错解决

执行./redis-trib.rb create --replicas 命令后报错:

然后,ruby-v 和gem -v 查看ruby环境发现都已经安装了。其实这个错误是缺少redis对ruby的接口,我们需要下载redis的gem包;

执行命令:gem install redis 有报错了。

ruby版本太低了。。。。

执行如下命令安装rvm,用他来安装ruby更新的版本:

//具体RVM安装命令地址:http://rvm.io/
  [root@linux ~]# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB 

  [root@linux ~]# curl -sSL https://get.rvm.io | bash -s stable

  [root@linux ~]# find / -name rvm -print
  [root@linux ~]# source /usr/local/rvm/scripts/rvm

安装好rvm,就可以看到很多rvm的文件。


设置默认的ruby版本


在执行gem install redis,就会安装成功了。

gem install redis

接下来执行命令安装集群:

./redis-trib.rb  create --replicas  1  127.0.0.1:7001  127.0.0.1:7002  127.0.0.1:7003  127.0.0.1:7004  127.0.0.1:7005  127.0.0.1:7006

输入yes,回车。

终于成功了,显示显示的主从节点信息。

集群测试

切换到任意的节点目录下,连接添加数据测试:

 redis-cli -p 7001  -c

这里就可以看到set name 集群已经hash了key分布在哪个槽上,自动跳转到对应的节点上。

© 著作权归作者所有

狂奔的熊二
粉丝 3
博文 23
码字总数 27331
作品 0
成都
程序员
私信 提问
Linux(Ubuntu)Redis 搭建集群

Redis 发布的 5.x 系列和5.x之前的版本,进行集群的构建方式有所调整而并不通用。 一、基础环境准备 1.1 Linux下的C语言编译环境 Redis是C语言开发的,安装redis需要C语言的编译环境。如果没有...

PythonJsGo
04/04
133
1
【Redis学习】--Redis集群搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/YYZZHC999/article/details/83038344 Redis部署 以Linux(CentOS7.4)为例 1.1 安装依赖环境 Redis是c语言开发...

杨晓慧_Hepburn
2018/10/13
0
0
redis3.2.3 cluster配置

配置redis cluster,以两台机器,6个实例为环境。 操作系统 CentOS Linux release 7 64位 安装依赖包:单独下载redis-3.3.1.gem这个包要对应os版本 yum -y install tcl yum -y install ruby...

qhd2004
2018/06/27
0
0
Redis简介及Linux安装Redis

前言 本文主要内容: 1、简介redis,及使用的一些场景 2、linux安装redis 1、什么是Redis? redis是一个基于C语言编写的,支持网络,也可基于内存亦可持久化的日志型,Key-Value的数据库,提供...

LoveQueena
2018/05/12
0
0
ubuntu中redis集群的安装

首先先要检查一下是否安装gcc 如果没有安装gcc,需要安装一下 下载 集群的创建 分别对7001,7002、7003文件夹中的3个文件修改对应的配置 在192.168.1.238创建3个节点:对应的端口改为7003,70...

miaojiangmin
07/01
25
0

没有更多内容

加载失败,请刷新页面

加载更多

在Ignite中自定义身份认证安全插件

Ignite集群搭建完成之后,应用就可以接入集群进行各种操作了,但是默认的集群,没有安全保护机制,任何应用、支持JDBC的客户端,只要知道集群节点的IP地址,都可以接入集群,这造成了一定的安...

李玉珏
45分钟前
23
0
浅谈proxy代理模式

一、前言 代理是代替服务器去接受请求者的请求的中间人。我们也听说过代理服务器,它的作用的帮助客户端去请求客户端想要的资源,为什么要通过代理呢,那是因为客户端直接访问服务器会被拒绝...

青衣霓裳
46分钟前
5
0
Java多线程之原子操作类

在并发编程中很容易出现并发安全问题,最简单的例子就是多线程更新变量i=1,多个线程执行i++操作,就有可能获取不到正确的值,而这个问题,最常用的方法是通过Synchronized进行控制来达到线程...

全菜工程师小辉
56分钟前
7
0
arcgis arcpy 克里金插值 掩膜 配置符号系统 自动生成图片

整体思路,最后要加载到mxd文件中,然后导出图片 首先加载mxd文件 mxd = mapping.MapDocument(r"./11.mxd") 然后读取数据 并加载到图层中 sr = arcpy.SpatialReference(4326) # 读取csv...

可达鸭Go
今天
4
0
漂亮有创意的思维导图模板分享

相信很多人使用在绘制思维导图时很喜欢使用模板进行编辑,它能够让你在短时间内快速创造出一个风格明显好看的思维导图,对绘制时间以及使用够感受影响都是较为深刻的,下面为大家分享几款漂亮...

干货趣分享
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部