Redis集群部署

redis单机部署:

[root@redis-master ~]# mkdir -p /data/application      #创建工作目录

[root@redis-master ~]# wget http://download.redis.io/releases/redis-5.0.10.tar.gz    #下载

[root@redis-master ~]# tar xzf redis-5.0.10.tar.gz -C /data/application/     #解压

[root@redis-master ~]# mv /data/application/redis-5.0.10/  /data/application/redis/ 

[root@redis-master ~]# yum install -y gcc make  #安装编译工具

[root@redis-master ~]# cd /data/application/redis/

[root@redis-master redis]# make

[root@redis-master redis]# cp redis.conf redis.conf.bak

[root@redis-master redis]# mkdir /data/application/redis/data    #创建存放数据的目录

[root@redis-master redis]# vim redis.conf     ---修改如下

bind 0.0.0.0  #只监听内网IP

daemonize yes     #开启后台模式将on改为yes

timeout 300      #连接超时时间

port 6379                      #端口号

dir /data/application/redis/data  #本地数据库存放持久化数据的目录该目录-----需要存在

pidfile /var/run/redis_6379.pid  #定义pid文件

logfile /var/log/redis.log  #定义log文件

配置redis为systemctl启动:

[root@redis-master redis]# cd /lib/systemd/system

[root@redis-master system]# vim redis.service

[Unit]

Description=Redis

After=network.target

[Service]

ExecStart=/data/application/redis/src/redis-server /data/application/redis/redis.conf  --daemonize no

ExecStop=/data/application/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown

[Install]

WantedBy=multi-user.target

启动服务:

[root@redis-master system]# systemctl daemon-reload

[root@redis-master system]# systemctl start redis.service

登陆redis:

[root@redis-master system]# cd /data/application/redis/src/

[root@redis-master src]# /data/application/redis/src/

/redis-cli -h 10.36.192.149 -p 6379

10.36.192.149:6379> ping     

PONG

10.36.192.149:6379> set name newrain    #设置key--name,并设置值

OK

10.36.192.149:6379> get name    #获取到key

"newrain"

10.36.192.149:6379>

redis已经部署完成,将ip和端口发给开发即可。

数据持久化:

两种方式:RDB 和 AOF

RDB --特点:  1.周期性   2.不影响数据写入    3.高效     4.完整性较差

AOF --特点: 1.实时性  2.完整性较好  3.体积大

持久化配置:

配置:redis.conf

dbfilename dump.rdb

dir /data/application/redis/data

stop-writes-on-bgsave-error yes  

rdbcompression yes 

appendonly yes

redis主从配置:

原理:

从服务器会向主服务器发出SYNC指令,当主服务器接到此命令后,就会调用BGSAVE指令来创建一个子进程专门进行数据持久化工作,也就是将主服务器的数据写入RDB文件中。在数据持久化期间,主服务器将执行的写指令都缓存在内存中。

在BGSAVE指令执行完成后,主服务器会将持久化好的RDB文件发送给从服务器,从服务器接到此文件后会将其存储到磁盘上,然后再将其读取到内存中。这个动作完成后,主服务器会将这段时间缓存的写指令再以redis协议的格式发送给从服务器。

redis-sentinel---哨兵模式:

作用:

1):Master状态检测 

2):如果Master异常,则会进行Master-Slave切换,将其中一个Slave作为Master,将之前的Master作为Slave 

3):Master-Slave切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换 

主观下线和客观下线:  

主观下线:Subjectively Down,简称 SDOWN,指的是当前 Sentinel 实例对某个redis服务器做出的下线判断。 

客观下线:Objectively Down, 简称 ODOWN,指的是多个 Sentinel 实例在对Master Server做出 SDOWN  判断,并且通过 SENTINEL is-master-down-by-addr 命令互相交流之后,得出的Master  Server下线判断,然后开启failover

redis集群

三台服务器:10.36.192.40(7001,7002)   redis-1

10.36.192.41(7003,7004)   redis-2

10.36.192.42(7005,7006)   redis-3

第一步:三台服务器部署安装redis

第二步:配置相应的服务端口

[root@redis-1 ~]# mkdir -p /data/application/{7001,7002}/data

[root@redis-2 ~]# mkdir -p /data/application/{7003,7004}/data

[root@redis-3 ~]# mkdir -p /data/application/{7005,7006}/data

第三步:配置相应的redis.conf文件(3台6个)

[root@redis-1 ~]# cat /data/application/7001/redis.conf

port 7001

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

daemonize yes

bind 0.0.0.0

pidfile  /data/application/7001/redis_7001.pid

dir  /data/application/7001/data


[root@redis-1 ~]# cat /data/application/7002/redis.conf

port 7002

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

daemonize yes

bind 0.0.0.0

pidfile  /data/application/7002/redis_7002.pid

dir  /data/application/7002/data


[root@redis-2 ~]# cat /data/application/7003/redis.conf

port 7001

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

daemonize yes

bind 0.0.0.0

pidfile  /data/application/7003/redis_7003.pid

dir  /data/application/7003/data

..........

第四步:启动服务 - 查看一下端口是否正常在监听状态

[root@redis-1 ~]# /data/application/redis/src/redis-server   /data/application/7001/redis.conf

[root@redis-1 ~]# /data/application/redis/src/redis-server   /data/application/7002/redis.conf

[root@redis-1 ~]#  ss -nplt    #查看相应端口是否被监听

..........

[root@redis-3 ~]# /data/application/redis/src/redis-server   /data/application/7005/redis.conf

[root@redis-3 ~]# /data/application/redis/src/redis-server   /data/application/7006/redis.conf

[root@redis-3~]#  ss -nplt    #查看相应端口是否被监听

第五步:创建集群

[root@redis-1 ~]# /data/application/redis/src/redis-cli --cluster create --cluster-replicas  1 10.36.192.40:7001 10.36.192.40:7002 10.36.192.41:7003 10.36.192.41:7004 10.36.192.42:7005 10.36.192.42:7006

第六步:登录集群并测试

[root@redis-1 ~]# /data/application/redis/src/redis-cli  -c  -h 10.36.192.42 -p 7005   #可登录任意IP的端口测试

10.36.192.42:7005> cluster info

10.36.192.42:7005> cluster nodes           #显示主从详细信息

Redis集群部署_第1张图片

你可能感兴趣的:(软件安装,redis,数据库,缓存)