搭建高可用Redis缓存

单机部署Redis服务器
 
1.下载并解压(可以通过redis官网下载或使用wget获取,获取地址: http://download.redis.io/releases/redis-5.0.2.tar.gz
 
2.安装依赖包
 
3.创建redis安装路径
 
4.编译并安装,指定安装目录为/usr/local/redis/
 
5.复制redis相关命令到/usr/sbin目录下,方便敲命令
 
6.建立redis配置文件,redis.conf在redis的源码目录下,port默认6379
 
7.修改redis配置文件
修改下面几项:
daemonize no  -->  daemonize yes        //默认前端启动,设置后端启动
# bind 127.0.0.1  -->  bind 0.0.0.0        //默认允许本机访问,设置允许远程访问
logfile ""  -->  logfile /var/log/redis_6379.log        //配置redis日志
# requirepass foobared  -->  requirepass 123456        //设置redis请求密码为123456
 
修改之后重启下服务
有了密码之后,进入客户端,就得这样访问:
 
8.redis常用操作
启动
 
关闭
 
查看是否启动
 
进入客户端
 
关闭客户端
 
设置开机自启
 
开放防火墙端口
添加规则:
保存规则:
重启iptables:
 
9.将redis注册为系统服务
在/etc/init.d目录下添加redis服务启动脚本
脚本内容:
#!/bin/sh
#  
# redis - this script starts and stops the redis-server daemon  
#  
# chkconfig:   - 85 15  
# description:  Redis is a persistent key-value database  
# processname: redis-server  
# config:      /usr/local/redis/bin/redis-server
# config:      /etc/redis.conf  
# Source function library.  
. /etc/rc.d/init.d/functions
# Source networking configuration.  
. /etc/sysconfig/network
# Check that networking is up.  
[ "$NETWORKING" = "no" ] && exit 0
redis="/usr/local/redis/bin/redis-server"
prog=$(basename $redis)
REDIS_CONF_FILE="/etc/redis.conf"
[ -f /etc/sysconfig/redis ] && . /etc/sysconfig/redis
lockfile=/var/lock/subsys/redis
start() {
    [ -x $redis ] || exit 5
    [ -f $REDIS_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "  
    daemon $redis $REDIS_CONF_FILE
    retval=$?
    echo  
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
stop() {
    echo -n $"Stopping $prog: "  
    killproc $prog -QUIT
    retval=$?
    echo  
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
restart() {
    stop
    start
}
reload() {
    echo -n $"Reloading $prog: "  
    killproc $redis -HUP
    RETVAL=$?
    echo  
}
force_reload() {
    restart
}
rh_status() {
    status $prog
}
rh_status_q() {
    rh_status >/dev/null 2>&1
}
case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
    ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart| reload|orce-reload}"  
        exit 2
esac

赋予脚本权限

 
启动、停止和重启
 
redis-5.0.7版本启动报错,查看日志,报错一:
解决方法:写入“ vm.overcommit_memory = 1”至/etc/sysctl.conf文件,并重载sysctl配置
 
报错二:
解决方法:执行 echo never > /sys/kernel/mm/transparent_hugepage/enabled,并将这句命令写入/etc/rc.local文件以永久生效
 
报错三:
解决方法:将“net.core.somaxconn = 1024”写入/etc/sysctl.conf文件,并重载sysctl配置
 
 
 
搭建Redis主从架构
 
1.主从环境
192.168.117.14:6379    主    sz12
192.168.117.15:6379    从    sz13
 
2.编辑从机的redis配置文件
添加一行,对应主机的ip和端口
如果主机设置了密码,找到masterauth,改为主机设定的密码
 
配置完成后重启从机redis服务
 
3.进入主机的redis-cli状态,输入INFO replication查询当前主机的Redis处于什么角色,有哪些从机已经连上主机
进入从机的redis-cli状态,同样可以查看信息
 
4.测试
进入主机的redis-cli状态,set myqq 82900528
进入从机的redis-cli状态,get myqq,查看是否可以获取值
 
搭建Redis Sentinel高可用架构
 
1.环境
redis-server
192.168.117.14:6379    主    sz12
192.168.117.15:6379    从    sz13
 
redis-sentinel
192.168.117.14:26379    sz12
192.168.117.15:26379    sz13
 
2.建立redis配置文件
如果要做自动故障转移,则建议所有的redis.conf都设置masterauth,因为自动故障只会重写主从关系,即slaveof,不会自动写入masterauth。如果Redis原本没有设置密码,则可以忽略。
将源码目录下的redis-sentinel的配置文件拷贝至/etc/下
 
3.修改sentinel.conf配置文件(主从都要)
修改如下几项
 
//主从都设定为192.168.117.14
//redis在搭建时设置了密码
//5秒内mymaster没有响应,就认为SDOWN
 
4.启动redis-sentinel
 
5.进入任意一台sentinel机进入redis-cli查看服务信息
 
6.自动故障转移测试
关闭主机redis
 
进入从机查看sentinel状态,发现从库提升为主库
 
 
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值