Redis集群配置及使用

一、Redis的安装

在之前的一片博客中,介绍了Redis安装的详细过程和如何在公网中进行访问,点击这里进行Redis的安装和配置。相对来说配置不是特别复杂,然而,在比较大的工程当中,由于数据量和并发量都比较大,一个Redis节点往往不能满足项目的需求,所以就分享一下我搭建Redis集群的步骤和遇到的问题。

二、准备工作

  1. Ruby的安装
    Ruby是进行集群搭建运行脚本的必要工具
    执行命令安装rubysudo apt-get install ruby

  2. 建立目录和相关配置
    在你的某个目录下建立文件夹,以便保存redis集群的相关配置和日志信息
    mkdir /home/ubuntu/redis-cluster
    首先明确一下目录结构,我的如下:

ubuntu@VM-0-6-ubuntu:~/redis-cluster$ tree
.
├── 7000
│   ├── redis.conf
│   ├── redis.log
│   └── redis-server
├── 7001
│   ├── redis.conf
│   ├── redis.log
│   └── redis-server
├── 7002
│   ├── redis.conf
│   ├── redis.log
│   └── redis-server
├── 7003
│   ├── redis.conf
│   ├── redis.log
│   └── redis-server
├── 7004
│   ├── redis.conf
│   ├── redis.log
│   └── redis-server
├── 7005
│   ├── redis.conf
│   ├── redis.log
│   └── redis-server
├── appendonly.aof
├── dump.rdb
├── nodes1.conf
├── nodes2.conf
├── nodes3.conf
├── nodes4.conf
├── nodes5.conf
├── nodes6.conf
├── redis-trib.rb
└── start_cluster.sh

这里的tree命令打印当前目录结构,可用sudo apt-get -y install tree安装
7000,7001,7002,7003,7004,7005是五个节点目录,需要进行创建

mkdir 7000 7001 7002 7003 7004 7005

其中保存的是每个redis-cluster的节点信息
我们需要将之前安装的redis-server脚本复制过来,一般在redis安装目录的src中,在redis-cluster目录下使用命令
cp /usr/lib/redis-4.0.10/src/redis-server /7000
cp /usr/lib/redis-4.0.10/src/redis-server /7001
cp /usr/lib/redis-4.0.10/src/redis-server /7002
cp /usr/lib/redis-4.0.10/src/redis-server /7003
cp /usr/lib/redis-4.0.10/src/redis-server /7004
cp /usr/lib/redis-4.0.10/src/redis-server /7005
如果遇到Permission denied类的错误,直接加上sudo就好
在各个节点文件夹中新建redis配置文件redis.conf,其中写入内容如下:

port 7000   #端口号
cluster-enabled yes   #启用redis集群模式
cluster-config-file nodes6.conf #节点信息日志
cluster-node-timeout 5000	
appendonly yes	#保证数据持久化,会生成appendonly.aof文件
protected-mode no #保护模式关掉,可以在公网连接

port参数为端口号,不同的目录不同,分别对应7000-7005

三、启动

  1. 启动各个节点的Redis服务,以7000目录为例
    进入目录
    cd 7000/
    启动服务
    ./redis-server redis.conf
    其他节点操作类似
  2. 建立redis-cluster集群
redis-trib.rb  create  --replicas  1  127.0.0.1:7000 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

注意:这是在本机搭建的redis集群,如果要在公网进行集群的访问,需要将127.0.0.1替换为公网ip

  1. 重启
    在需要重启的时候,首先得停掉每个节点的服务,可以先查看其pid,再使用kill命令停止
ubuntu@VM-0-6-ubuntu:~/redis-cluster$ ps -aux|grep redis
ubuntu   15011  0.0  0.2  47560  4952 ?        Sl   Jul22   5:00 ./7000/redis-server *:7000 [cluster]
ubuntu   15012  0.0  0.2  47560  4664 ?        Sl   Jul22   5:03 ./7001/redis-server *:7001 [cluster]
ubuntu   15013  0.0  0.2  47560  4712 ?        Sl   Jul22   5:01 ./7002/redis-server *:7002 [cluster]
ubuntu   15014  0.0  0.2  47560  4460 ?        Sl   Jul22   4:56 ./7003/redis-server *:7003 [cluster]
ubuntu   15015  0.0  0.2  47560  4368 ?        Sl   Jul22   4:53 ./7004/redis-server *:7004 [cluster]
ubuntu   15016  0.0  0.2  47560  4360 ?        Sl   Jul22   4:51 ./7005/redis-server *:7005 [cluster]
ubuntu   15116  0.0  0.0  14972  1008 pts/0    S+   11:27   0:00 grep --color=auto redis
redis    17954  0.0  0.1  40884  3116 ?        Ssl  Jul20   5:25 /usr/bin/redis-server *:6379

可以看到,其pid为15011-15016,首先杀死进程

kill -9 15011
kill -9 15012
kill -9 15013
kill -9 15014
kill -9 15015
kill -9 15016

然后,删除文件夹下的.aof.conf.rdb文件(即搭建集群后生成的各种文件),后面就是按照上面的1,2步骤进行启动了。

四、访问Redis集群

命令行执行
redis-cli -c -h [ip地址/域名] -p 7000可以连接到一个节点上

:~$     redis-cli -c -h isharpen.cn -p 7000
>
> set test 1
-> Redirected to slot [6918] located at 111.230.72.15:7001
OK
> get test
"1"
> del test
(integer) 1
> KEYS PATTERN
(empty list or set)
> KEYS *
1) "name"
> exit

如上执行的命令,可以正常使用redis集群了

你可能感兴趣的:(环境配置)