redis集群搭建
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
redis集群搭建
现在项目上用redis的话,很少说不用集群的情况,毕竟如果生产上只有一台redis会有极大的风险,比如机器挂掉,或者内存爆掉,就比如我们生产环境曾今也遭遇到这种情况,导致redis内存不够挂掉的情况,当然这些都是我们及其不能容忍的,第一个必须要做到高可靠,其次才是高性能,好了,下面我来逐一搭建一下。
一:Redis集群搭建
1. 下载
首先去官网下载较新的3.2.0版本,下载方式还是非常简单的,比如官网介绍的这样。
$ wget http://download.redis.io/releases/redis-3.2.0.tar.gz
$ tar xzf redis-3.2.0.tar.gz
$ cd redis-3.2.0
$ make
2. redis配置
由于我们要做集群,而且还要redis自带的redis-trib.rb 能正常运行,我们需要在集群中开启三台master,三台slave,所以这里我需要建立6个文件
夹,而且文件夹的名称就使用端口地址的名字,比如:6389. 6380....6384。
3. config配置。
现在directory的分布情况大致如上图,接下来要做的事情就是配置redis.conf了,在这里需要配置四个选项。。。
<1> port 端口地址,比如6380文件夹下面的port就是6380,
# Accept connections on the specified port, default is6379 (IANA #815344).
# If port 0is specified Redis will not listen on a TCP socket.
port 6379
<2> cluster-enabled 和cluster-config-file
这个顾名思义,首先需要开启redis的cluster模式,然后配置一个cluster-config-file文件,这个文件用于存放redis 的实时信息,redis会动态追加和修改这个conf下面的内容信息,不过要记住,这个nodes-6379.conf 可以根据端口文件夹依次配置,比如6380文件夹可以改成nodes-6380.conf这样。。。
# Normal Redis instances can't be part of a Redis Cluster; only nodes that are
# started as cluster nodes can. In order to start a Redis instance as a
# cluster node enable the cluster support uncommenting the following:
#
cluster-enabled yes
# Every cluster node has a cluster configuration file. This file is not
# intended to be edited by hand. It is created and updated by Redis nodes.
# Every Redis Cluster node requires a different cluster configuration file.
# Make sure that instances running in the same system do not have
# overlapping cluster configuration file names.
#
cluster-config-file nodes-6379.conf
<3> directory
为了方便管理,我这里配置的root目录取决于在哪个文件夹,比如6380下面我的dir就是: dir ./6380/
# Note that you must specify a directory here, not a file name.
dir ./6379/
<4> protected-mode
这个是redis 3.2 才追加的一个功能,从功能注释中,我们就可以发现,这个默认就是不让外界可以访问redis,所以这里我们就改为no,可以远程访问。
# By default protected mode is enabled. You should disable it only if
# you are sure you want clients from other hosts to connect to Redis
# even if no authentication is configured, nor a specific set of interfaces
# are explicitly listed using the "bind" directive.
protected-mode no
ok,到现在为止,我们的config就修改完毕了,其他端口的文件夹也可以依次配置之~
二:开启redis
到现在为止,各个端口文件夹都配置成功了,接下来准备开启了。
接下来我们可以看一下,在6379下面是不是有生成node-6379.conf文件,比如下面:
三:配置redis-trib.rb
因为redis-trib.rb是ruby写的,而我们的电脑肯定是没有ruby和一些配置依赖项,不过没关系,有强大的yum安装,一切都不是问题。
1. 执行replicas命令
[jack@localhost ~]$ cluster/redis-trib.rb create --replicas 1192.168.161.133:6379192.168.161.133:6380
192.168.161.133:6381192.168.161.133:6382192.168.161.133:6383192.168.161.133:6384
/usr/bin/env: ruby: No such file or directory
[jack@localhost ~]$
可以看到ruby是没有安装的,所以下一步我们要安装ruby了。。。
2. 安装ruby 【一定要是管理员权限哦】