redis 集群环境搭建(lunix)

342 阅读3分钟

本博文摘自 www.cnblogs.com/wuxl360/p/5…

1.介绍安装环境与版本

用两台虚拟机模拟6个节点,一台机器2个节点,创建出1 master、1 salve 环境。 共三台机器 redis 采用 redis-3.2.4 版本。

2.安装包下载并解压

wget http://download.redis.io/releases/redis-3.2.4.tar.gz
   tar -zxvf redis-3.2.4.tar.gz 

3.编译安装

    cd redis-3.2.4
    make && make install    

4.将 redis-trib.rb 复制到 /usr/local/bin 目录下

    cd src
    cp redis-trib.rb /usr/local/bin/ 

5.集群

首先在 第一台 机器上 /root/software/redis-3.2.4 目录下创建 redis_cluster 目录;

    mkdir redis_cluster

在 redis_cluster 目录下,创建名为7001、7002的目录,并将 redis.conf 拷贝到这两个目录中

    cd redis_cluster
    mkdir -p 7001
    mkdir -p 7002
    cp redis.conf redis_cluster/7001
    cp redis.conf redis_cluster/7002

分别修改这三个配置文件,修改如下内容

port  7001                                        //端口7000,7002,7003        
bind 本机ip                                       //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize    yes                               //redis后台运行
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002
cluster-enabled  yes                           //开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf   //集群的配置  配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout  15000                //请求超时  默认15秒,可自行设置
appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志

重复前三步操作, 启动所有个节点,三台共六个

    redis-server redis_cluster/7001/redis.conf
    redis-server redis_cluster/7002/redis.conf

检查是否启动成功

    ps -ef | grep redis

集群创建 需要先安装ruby环境

yum -y install ruby ruby-devel rubygems rpm-build
gem install redis

创建集群

redis-trib.rb  create  --replicas  1  172.19.147.32:7001 172.19.147.32:7002  172.19.147.33:7001 172.19.147.33:7002
 172.19.147.34:7001 172.19.147.34:7002

如果没报错,集群创建成功

6.集群验证 连接redis客户端

 redis-cli -h 192.168.31.245 -c -p 7002

登录之后

   <192.168.31.245:7001> set hello world
   <192.168.31.245:7001> keys *
   "hello"
    连接另一台
   <192.168.31.244:7002> get hello
   "world"

说明集群运作正常。 Redis 集群会把数据存在一个 master 节点,然后在这个 master 和其对应的salve 之间进行数据同步。当读取数据时,也根据一致性哈希算法到对应的 master 节点获取数据。只有当一个master 挂掉之后,才会启动一个对应的 salve 节点,充当 master 。 需要注意的是:必须要3个或以上的主节点,否则在创建集群时会失败,并且当存活的主节点数小于总节点数的一半时,整个集群就无法提供服务了。 实践过程中遇到ruby版本过低,安装不了集群,解决办法如下:

ruby -v

查看系统自带的ruby版本为2.0.0,版本太低, 执行gem install redis 这一步时会提示错误

安装yum源

 yum install centos-release-scl-rh&emsp;
 yum install rh-ruby24  -y
 scl enable rh-ruby24 bash

查看ruby版本

 ruby -v    

7.redis 密码设置(自行选择)

(1).第一种方式 (当前这种linux配置redis密码的方法是一种临时的,如果redis重启之后密码就会失效,)

  a.首先进入redis,如果没有开启redis则需要先开启:
  [root@iZ94jzcra1hZ bin]# redis-cli -p 6379
  127.0.0.1:6379> 
  b.查看当前redis有没有设置密码:
  127.0.0.1:6379> config get requirepass
  1) "requirepass"
  2) ""
  c.为以上显示说明没有密码,那么现在来设置密码:
  127.0.0.1:6379> config set requirepass abcdefg
  OK
  127.0.0.1:6379> 
  d.再次查看当前redis就提示需要密码:
   127.0.0.1:6379> config get requirepass
   (error) NOAUTH Authentication required.
   127.0.0.1:6379>

(2).第二种方式 (永久方式) 需要永久配置密码的话就去redis.conf的配置文件中找到requirepass这个参数,如下配置: 修改redis.conf配置文件

requirepass 123   指定密码123

保存后重启redis就可以了