美文网首页
redis 安装部署 、主从复制、哨兵模式

redis 安装部署 、主从复制、哨兵模式

作者: su酥饼 | 来源:发表于2022-02-14 16:06 被阅读0次

    一.单点 reids 安装部署

    官网地址:https://redis.io/download
    下载包:wget http://download.redis.io/releases/redis-3.2.12.tar.gz
    

    1.将安装包解压至/usr/local/下

    tar xf redis-3.2.12.tar.gz -C /usr/local/
    cd /usr/local/
    ln -s  redis-3.2.12 redis
    

    2.安装环境依赖

    yum -y install gcc automake autoconf libtool make
    

    3.编译

    cd /usr/local/redis/
    make && make install #编译安装
    

    4.配置环境变量

    vim /etc/bash.rc
    export PATH=/usr/local/redis/src:$PATH
    source  /etc/bash.rc
    

    5.编写配置文件

    daemonize yes                 #是否后台运行
    port 6379                     #默认端口
    logfile /usr/local/redis/redis.log   #日志文件位置
    dir /usr/local/redis              #持久化文件存储位置
    pidfile /usr/local/redis/redis.pid  #pid文件存储位置
    dbfilename dump.rdb        #RDB持久化数据文件:
    protected-mode no          #默认开启了保护模式,只允许本地回环地址登录并访问数据库。
    bind 10.0.0.100            #指定通过那个ip连接到redis
    requirepass 123    #设置登录密码
    

    6.启动redis

    redis-server /usr/local/redis/redis.conf 
    

    7.连接测试

    redis-cli -h 10.0.0.100 -p6379 -a 123 
    

    8.设置开机自启

    vim /etc/rc.d/rc.local
    /usr/local/bin/redis-server /usr/local/redis/6379/redis.conf
    chmod +x /etc/rc.d/rc.local
    

    9.redis 服务关闭

    redis-cli shutdown                    #方法一
    [root@redis-2 ~]# redis-cli -a 123456      #方法二
    127.0.0.1:6379> shutdown
    not connected> 
    pkill redis-server  #方法三    
    

    10.redis 配置参数详解

    daemonize:如需要在后台运行,把该项的值改为yes
    pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址
    bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项
    port:监听端口,默认为6379
    timeout:设置客户端连接时的超时时间,单位为秒
    loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice
    logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上
    database:设置数据库的个数,默认使用的数据库是0
    save:设置redis进行数据库镜像的频率
    rdbcompression:在进行镜像备份时,是否进行压缩
    dbfilename:镜像备份文件的文件名
    dir:数据库镜像备份的文件放置的路径
    slaveof:设置该数据库为其他数据库的从数据库
    masterauth:当主数据库连接需要密码验证时,在这里设定
    requirepass:设置客户端连接后进行任何其他指定前需要使用的密码
    maxclients:限制同时连接的客户端数量
    maxmemory:设置redis能够使用的最大内存
    appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态
    appendfsync:设置appendonly.aof文件进行同步的频率
    vm_enabled:是否开启虚拟内存支持
    vm_swap_file:设置虚拟内存的交换文件的路径
    vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
    vm_page_size:设置虚拟内存页的大小
    vm_pages:设置交换文件的总的page数量
    vm_max_thrrads:设置vm IO同时使用的线程数量  
    

    二.redis主从安装部署

    1.资源清单 采取一主两从

    10.0.0.100 reids主
    10.0.0.101 reids从
    10.0.0.102 redis从
    

    2.三个节点安装reids 并启动

    10.0.0.100 、10.0.0.101、10.0.0.102 三个节点

    ### mkdir /data
    
    cat >>   /data/redis.conf <<EOF
    port 6379
    daemonize yes
    pidfile /data/redis.pid
    loglevel notice
    logfile "/data/redis.log"
    dbfilename dump.rdb
    dir /data/
    requirepass 123
    masterauth 123
    EOF
    启动:
    redis-server /data/redis.conf
    

    3、开启主从

    101/102这两台机器命令行操作:
    redis-cli -h 10.0.0.101 -p 6379 -a 123 SLAVEOF 10.0.0.100 6379  #这里的ip跟端口是主的
    redis-cli -h 10.0.0.102 -p 6379 -a 123 SLAVEOF 10.0.0.100 6379
    

    4.查询主从状态

    主节点

    [root@redis-100 ~]#  redis-cli -h 10.0.0.100 -p 6379 -a 123 info replication
    
    Replication
    
    role:master
    connected_slaves:2
    slave0:ip=10.0.0.101,port=6379,state=online,offset=71,lag=0
    slave1:ip=10.0.0.102,port=6379,state=online,offset=71,lag=1
    master_repl_offset:71
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:2
    repl_backlog_histlen:70
    

    从节点

    [root@redis-101 ~]#  redis-cli -h 10.0.0.101 -p 6379 -a 123 info replication
    
    Replication
    
    role:slave
    master_host:10.0.0.100
    master_port:6379
    master_link_status:up
    master_last_io_seconds_ago:3
    master_sync_in_progress:0
    slave_repl_offset:127
    slave_priority:100
    slave_read_only:1
    connected_slaves:0
    master_repl_offset:0
    repl_backlog_active:0
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:0
    repl_backlog_histlen:0
    

    三、sentinel(哨兵模式)

    1.介绍

    sentinel,中文名是哨兵。哨兵是 Redis 集群架构中非常重要的一个组件,主要有以下功能:

    • 集群监控:负责监控 redis master 和 slave 进程是否正常工作
    • 消息通知:如果某个 redis 实例有故障,那么哨兵负责发送消息作为报警通知给管理员
    • 故障转移:如果 master node 挂掉了,通过选举从slave node上产生新的master node
    • 配置中心:如果故障转移发生了,通知 client 客户端新的 master 地址

    哨兵用于实现 redis 集群的高可用,本身也是分布式的,作为一个哨兵集群去运行,互相协同工作

    2.修改配置文件

    # 1. 保护模式修改为否,允许远程连接
         protected-mode no
    # 2. 设定监控地址,为对应的主redis库的内网地址,mymaster为集群名字,可以根据情况自己修改
         sentinel monitor mymaster 10.0.0.100 6379 2
    # 3. 表示如果master重新选出来后,其它slave节点能同时并行从新master同步缓存的台数有多少个,显然该值越大,所有slave节点完成同步切换的整体速度越快,但如果此时正好有人在访问这些slave,可能造成读取失败,影响面会更广。最保定的设置为1,只同一时间,只能有一台干这件事,这样其它slave还能继续服务,但是所有slave全部完成缓存更新同步的进程将变慢。
         sentinel parallel-syncs mymaster 2
    # 4. 主数据库密码,需要将配置放在sentinel monitor master 10.0.0.100 6379 2下面
         sentinel auth-pass mymaster 123
    

    2-1编写守护进程启动sentinel

    #编写sentinel启动和关闭脚本
    ##启动sentinel脚本
    cat > /script/sentinel_start.sh <<EOF
    nohup /usr/local/redis/src/redis-sentinel /usr/local/redis/sentinel.conf >./sentinel.log &
    EOF
    
    ##关闭sentinel脚本
    cat > /script/sentinel_stop.sh <<EOF
    #!/bin/bash
    kill -9 `ps -ef |grep sent |awk 'NR==1 {print $2}'`
    EOF
    
    #配置sentinel 守护进程启动
    cat > /usr/lib/systemd/system/sentinel.service <<EOF
    [Unit]
    Description=shaobing
    After=network.target
    [Service]
    Type=forking
    Restart=no
    ExecStart=/script/sentinel_start.sh  #启动脚本或命令
    ExecStop=/script/sentinel_stop.sh     #关闭脚本或命令
    
    [Install]
    WantedBy=multi-user.target
    EOF
    

    3.启动

    启动顺序需要按照Master->Slave->Sentinel进行启动,分别把redis的config里面的daemonize参数设置为yes,这样就可以后台启动进程了,不用开启多个窗口了,启动步骤如下:

    # 启动redis-server的master和slave(根据配置文件启动)
    redis-server /data/redis.conf
    
    
    #三个节点启动sentinel
    systemctl start sentinel.service
    systemctl enab sentinel.service
    #查看进程 和端口
    netsat -lntup
    

    4.测试

    killl 7453(主库进程pid)
    redis-cli  -h 10.0.0.102 -p 6381 -a 123 info replication
    redis-cli  -h 10.0.0.102 -p 6382 -a 123 info replication
    此时会发现其中一台从库成了主
    

    相关文章

      网友评论

          本文标题:redis 安装部署 、主从复制、哨兵模式

          本文链接:https://www.haomeiwen.com/subject/bbthlrtx.html