Redis集群搭建

来源:互联网 发布:淘宝比价软件推荐 编辑:程序博客网 时间:2024/06/03 17:52

Redis作为缓存级别数据库,在访问量很高的项目中,使用它的好处要远大于MySQL等数据库

下面说一下自己在搭建redis集群时所遇到的坑,如有不正确的地方欢迎指正


一.先说下Redis单机版的安装:

这个就比较简单,熟练搭建单机版的,快速跳过

1.首先下载安装包(我用的是redis-3.2.11)


2.将压缩包上传到服务器,解压,会生成一个redis-3.2.11的目录,进入到此目录

3.直接使用命令make,进行编译
4.使用命令make install 命令进行安装

我用的是make install PREFIX=/usr/local/redis-cluster

PREFIX=用来指定安装目录,根据情况选择是否使用

按照我的路径来说,会在redis-cluster目录中存在一个bin目录 里面有启动redis的执行文件(redis-server)和关闭redis(redis-cli)
5.redis通过redis.conf进行配置,解压后的redis-3.2.11目录中有一个redis.conf配置文件,将此配置文件复制到安装目录的bin文件夹中

6编辑redis.conf,将daemonize 设置为yes(redis守护进程后端启动方式) 

一般都会使用阿里云进行部署,这时候肯定要用ssh工具进行远程操作,此处修改是为了解决dos窗口关闭就会将redis服务一起关闭的问题.

恭喜你,启动完成之后一个单机版的redis就已经搭建成功了.端口号在redis.conf中进行修改 默认port:6379 并且没有密码

二,Redis集群版安装

集群的好处就不多bb了.理解不了的也没必要搭建集群

reids-cluster内部是ping-pong投票机制,半数或者半数以上的借点连接不上某个节点 , 集群即宣布那个节点挂掉,所以redis-cluster最少需要三个节点,但是一般为了保证集群的安全,会进行主从备份,我做的简单是一主一从,所以最少需要六个点,但是这六个点不建议部署在同一台服务器上,因为当这台服务器宕机的时候,六个点都会挂掉

主节点会分配用来储存的哈希槽,一共16384个哈希槽 分配给主节点 (crc16算法对16384取余)

redis-cluster依赖ruby环境,还需要redis-ruby接口工程

1.yum install ruby

2.yum install rubygems

3.gem install redis -v -3.x.x 

4. 将解压后src中的redis-trib.rb拷贝到/usr/local/redis-cluster

以上配置算是一个redis实例

配置集群再复制需要的份数(此台机器的节点数)

vim redis.conf

port 7000 修改端口

daemonize yes 守护进程后台启动

cluster-enable yes 开启支持集群

删除bin中

*.rdb   //快照版本的实例化文件

 *.aof //执行一次保存一次的实例化文件

nodes.conf  //节点信息配置文件

5.首先将所有redis节点启动(单机版后台启动方式启动)

6.执行redis-trib.rb

./redis-trib.rb create  --replicas 1  +6个节点的ip:port

--replicas 1 表示只创建一个从节点

此时,会自动将这6个点的redis组成一个集群  

开启/关闭集群 等于 开启/关闭每一个节点

恭喜你,redis集群搭建完成,但还有一个非常重要的事情 那就是给集群加个密码

这地方偷懒了,会有黑客帮助你完成这一步,那时候后果.......不亚于删库

在创建成集群之前也就是在第6步之前不要设置密码,要在集群创建成功后再用Jedis为每一个节点依次设置密码

我就把代码放下面了

Jedis jedis = new Jedis("ip", port);  String configSet = jedis.configSet("requirepass", "你的密码");System.out.println("密码设置状态 : "+configSet );
这样,一个完整的redis集群搭建完成!

附:我是用的Redis压缩文件(linux)