部署redis内存缓存服务器方案
环境所需3台服务器、一台哨兵服务器、两台redis主从关系数据库服务器redis-4.0.8版本
一,redis一主一从服务器简介
Redis服务的主从复制(与mysql服务主从同步的功能一样。都是实现数据自动同步的存储结构)redis服务搭建好后,默认本身就是master主角色服务器**
主服务器:接受客户端连接
从服务器:连接主服务器同步数据,客户端对从服务器只有查询权限(只读)
附:redis主从复制工作过程(数据同步原理):
(从服务器首次做的是全量同步,且同步的数据会覆盖本机的数据)
第一步:slave向master发送sync命令
第二步:master启动后台存盘进程,并收集所有修改数据命令
第三步:master完成后台存盘后,传送整个数据文件到slave
第四步:slave接受数据文件,加载到内存中完成首次完全同步,后续有新数据产生时,master继续收集数据修改命令依次传给slave,完成同步。
二,搭建redis服务器(主从都需做此步骤)
将下载的tar包解压后源码编译安装(注意安装依赖gcc工具)
[root@redis-0001 ~]# tar xfredis-4.0.8.tar.gz
[root@redis-0001 ~]# cdredis-4.0.8/
[root@redis-0001 redis-4.0.8]# make
[root@redis-0001 redis-4.0.8]# make install
[root@redis-0001 redis-4.0.8]# ./utils/install_server.sh #初始化配置
(使用默认配置一路回车即可)
Welcome to the redis serviceinstaller
This script will help you easilyset up a running redis server
Please select the redis port forthis instance: [6379] 端口号
Selecting default: 6379
Please select the redis configfile name [/etc/redis/6379.conf] 主配置文件
Selected default -/etc/redis/6379.conf
Please select the redis log filename [/var/log/redis_6379.log] 服务日志文件
Selected default -/var/log/redis_6379.log
Please select the data directoryfor this instance [/var/lib/redis/6379] 数据库目录
Selected default -/var/lib/redis/6379
Please select the redis executablepath [/usr/local/bin/redis-server] 服务启动命令
Selected config:
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable :/usr/local/bin/redis-cli 连接服务命令
Is this ok? Then press ENTER to goon or Ctrl-C to abort.
Copied /tmp/6379.conf =>/etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels345!
Starting Redis server... 初始化配置后 会自动启动redis服务并设置开机运行
Installation successful!
修改配置文件/etc/redis/6379.conf
70 bind 本机ip地址
#70行bind默认为lo地址无法接收连接请求,需改成本机物理网卡地址
93 port 6379 #默认端口,可更改
[root@redis-0001redis-4.0.8]# netstat -utnalp | grep 6379 #查看服务端口号
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 4108/redis-server 1
[root@redis-0001redis-4.0.8]#ps -C redis-server #查看进程
PID TTY TIME CMD
4424 ? 00:00:00 redis-server
[root@redis-0001redis-4.0.8]#/etc/init.d/redis_6379 stop #停止服务
Stopping ...
Redis stopped
[root@redis-0001redis-4.0.8]# /etc/init.d/redis_6379start #启动服务
Starting Redis server...
说明:默认只能本机连接redis服务。修改了配置文件改变redis服务的运行配置需要重启redis服务才能生效,注意!修改配置文件就无法用脚本停止重启服务,需要修改默认脚本配置或者用命令停止服务]#redis-cli -h 本机ip地址 -p 6379 shutdown
三,搭建redis服务一主一从(只需在从服务器做此步骤)
方式1,每台redis默认就是主,所以只需配置从服务器
以下为命令行配置在从服务器操作,(马上生效、但不永久适合配置线上服务器)
[root@redis-0002 redis-4.0.8]# redis-cli -h 192.168.1.59 -p 6379 #进入交互式服务
>info replication #查看复制信息
>slaveof 主服务器IP地址 主服务器端口号 #指定主服务IP地址和端口号
>config rewrite #把配置生效到配置文件里
附:>slaveof no one #临时恢复为默认的主服务器
方式2,修改配置文件(永久有效,重启了redis服务依旧有效)
]#vim /etc/redis/6379.conf #找到以下行修改对应参数
slaveof 主服务器ip地址 主服务器端口号
搭建完成,最终完成redis主从数据库服务器实时数据同步
四,redis哨兵服务器
简介:监视主从复制结构中主服务器,发现主服务器无法连接后,会把对应的从升级为主服务器,继续监视新的主数据库服务器,坏掉的主数据库服务器恢复后会自动做当前主服务器的从,哨兵服务+redis主从服务,能够实现redis服务高可用和数据的自动备份,但远比redis集群的价格成本和运维成本要低。
作用功能说明:
1可以使用一主一从或一主多从或主从从+哨兵服务做服务的高可用和数据自动备份
2如果主从结构中的redis服务设置密码的话,就必须每台数据库都要设置密码且一样
3宕机的服务器启动服务后。需要人为的指定主服务器的连接密码
配置哨兵服务
具体操作步骤如下:
1, 安装源码软件redis(无需做初始化配置)
解包源码编译安装(注意先安装gcc依赖工具软件包)
]# tar xf redis-4.0.8.tar.gz
]# cd redis-4.0.8.tar.gz
]# make
]# make install
2, 创建并编辑著配置文件(源码包里就有哨兵服务配置文件的模板)
]# vim /etc/sentinel.cnf //创建新的空白配置文件进行编辑配置
bind 本机物理IP地址
port 26379 #端口,默认就是26379(可不写,也可改)
sentinel monitor redis_server redis主服务器IP地址 6379 1
#1为台数,有几个哨兵就写几台,目前环境为一台
sentinel auth-passredis_server 123456
#如果主服务器没有没有连接密码此配置项可以省略
3, 启动哨兵服务(用nohup和&放后台启动,不占用当前终端)
]# nohup redis-sentinel /etc/sentinel.conf &
]# jobs #查看当前终端后台进程
[1]+ 运行中 nohup redis-sentinel /etc/sentinel.conf&
完成配置后,最终实现redis主从+哨兵服务的高可用方案