redis集群配置

单机基本配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

#将redis目录下面utils中的redis_init_script复制到/etc/init.d/目录下,并且改为为redis_端口号

cp redis_init_script /etc/init.d/redis_6379

mkdir /etc/redis #存放redis的配置文件

mkdir /var/redis/6379 #存放redis的持久化文件

修改redis.conf拷贝到/etc/redis/6379.conf中

#修改redis.conf中的配置环境为生产环境

daemonize yes # 让redis以后台方式启动

pidfile /var/run/redis_6379.pid #设置redis的pid文件位置

port 6379 #设置redis的监听端口号

dir /var/redis/6379 #设置持久化文件的存储位置

#在任何目录下都可以使用redis_cli

sudo cp src/redis-cli /usr/local/bin/

sudo cp src/redis-server /usr/local/bin/

#启动redis

cd /etc/init.d/

chmod 777 6379.conf

./redis_6379.conf start

#让redis开机自动启动,在redis_6379的最上面加入下面两行注释

#chkconifg:2345 90 10

#description:Redis is a persistent key-value database

#--------------------------

#在当前目录下执行下面这个命令

chkconfig redis_6379 on

#查看redis是否启动

ps -ef |grep redis

主从复制配置

master

在redis的配置文件中,即/etc/redis/6379.conf

1
2
3
4
5

bind 自己的ip地址

requirepass 密钥(自己随意设置即可)

slave

1
2
3
4
5
6
7

bind 自己的ip地址

masterauth 上面master设置的密钥

replicaof(比较旧的版本是slaveof) aster的IP地址 端口号(一般默认为6379)

启动redis

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

注意:先启动master再启动slave

#启动redis 进入到/etc/init.d/目录下

./redis.6379 start

#进入redis,设置了requirepass的服务器需要输入密钥,没有设置的不需要,也就是说master是需要输入,而slave不需要输入密钥

redisl-cli -h 当前服务器的ip地址 -a 设置的密钥

#在服务器中可以查看主从配置信息

info replication

master info replication

image.png

slave info replication

image.png

问题

ping通,但是telnet不通

  1. 如果你在从的redis中看见master_link——status 状态是down,可能是telnet到master的端口不通,执行telent master ip地址 redis设置的端口号(默认是6379)

  2. 如果发现没有telnet命令,需要执行 yum install -y telnet

  3. 如果yum出现问题,修改yum的源文件,vim /etc/yum.repos.d/ epel.repo

将下图中的metalink注释起来,将baseurl取消注释,下图是修改后的结果

image.png

  1. telnet安装之后,还是slave 可以ping通master,但是telnet不通,这种情况一般就是服务器的防火墙的问题,可以选择直接将服务器关闭
1
2
3
4
5
6
7
8
9
10
11
12
13

#关闭开机自动启动防火墙

systemctl disable firewalld.service

#查看防火墙的状态

firewall-cmd --state

#临时关闭防火墙

systemctl stop firewalld.service