zoukankan      html  css  js  c++  java
  • linux (07) redis详解

    一.redis持久化RDB

    1.在配置文件中添加参数,开启rdb功能

    redis.conf 写入

    port 6379
        daemonize yes
        logfile /data/6379/redis.log
        dir /data/6379
        dbfilename   s15.rdb
        save 900 1                    #rdb机制 每900秒 有1个修>改记录
        save 300 10                    #每300秒        10个修改
        记录
        save 60  10000                #每60秒内        10000修>改记录

    创建文件夹

    mkdir -p /data/6379

    2.开启redis服务端,测试rdb功能

    redis-server redis.conf

    二.redis持久化之aof

    1.开启aof功能,在redis.conf中添加参数

    port 6379
        daemonize yes
        logfile /data/6379/redis.log
        dir /data/6379
    #后面区分添加的两行代码
        appendonly yes
        appendfsync everysec

    2.启动redis服务端,指定aof功能,测试持久化数据

    三.redis不重启之rdb数据切换到aof数据

    1.准备rdb的redis服务端 redis-server s15-redis.conf (注明这是在rdb持久化模式下)

    2.切换rdb到aof

    redis-cli 登录redis,然后通过命令,激活aof持久化

    3.127.0.0.1:6379> CONFIG set appendonly yes   #用命令激活aof持久化(临时生效,注意写入到配置文件)

    4.127.0.0.1:6379> CONFIG SET save "" #关闭rdb持久化

    5.将aof操作,写入到配置文件,永久生效,下次重启后生效

     1 port 6379
     2 daemonize yes 
     3 logfile /data/6379/redis.log
     4 dir /data/6379   
     5 #dbfilename   s15.rdb
     6 #save 900 1  
     7 #save 300 10 
     8 #save 60  10000 
     9 appendonly yes
    10 appendfsync everysec

    6.测试aof数据持久化 ,杀掉redis,重新启动

    kill 杀死进程

    redis-server s15-redis.conf

    7.写入数据,检查aof文件

    四 redis的主从同步

    1.检查redis数据库信息,主从状态的命令

    redis-cli -p 6379 info 检查数据库信息

    redis-cli -p 6379 info replication 检查数据库主从信息

    1.准备三个redis配置文件,通过端口的区分,启动三个redis数据库实例,然后配置主从复制

    redis-6379.conf

    1 port 6379
    2 daemonize yes
    3 pidfile /data/6379/redis.pid
    4 loglevel notice
    5 logfile "/data/6379/redis.log"
    6 dbfilename dump.rdb
    7 dir /data/6379

    redis-6380.conf

    #通过命令快速生成配置文件

    sed "s/6379/6380/g" redis-6379.conf > redis-6380.conf

    slaveof 127.0.0.1 6379 #指明主库的身份ip 和端口  #这步需要进入redis-cli -p -6380 后

    同上创建redis-6381.conf

    2.启动三个数据库实例,检测redis主从同步方案

    3.redis主从赋值,故障手动切换,

    3.1.杀死6379的主库实例  #这里发现从库无法创建redis

    3.2.手动切换主从身份
        1.登录 redis-6380 ,通过命令,去掉自己的从库身份,等待连接
            slaoveof no one  
        2.登录redis-6381 ,通过命令,生成新的主任
            slaveof 127.0.0.1 6380  

    3.3.测试新的主从数据同步

    五 redis哨兵

    1.什么是哨兵呢?保护redis主从集群,正常运转,当主库挂掉之后,自动的在从库中挑选新的主库,进行同步

    2.redis哨兵的安装配置

    2.1 准备三个redis数据库实例(三个配置文件,通过端口区分)

    [root@localhost redis-4.0.10]# redis-server redis-6379.conf

    [root@localhost redis-4.0.10]# redis-server redis-6380.conf

    [root@localhost redis-4.0.10]# redis-server redis-6381.conf

    2.2.准备三个哨兵,准备三个哨兵的配置文件(仅仅是端口的不同26379,26380,26381)

    redis-sentinel-26379.conf

    1 port 26379  
    2 dir /var/redis/data/
    3 logfile "26379.log"
    4 sentinel monitor s15master 127.0.0.1 6379 2
    5 sentinel down-after-milliseconds s15master 30000
    6 sentinel parallel-syncs s15master 1
    7 sentinel failover-timeout s15master 180000
    8 daemonize yes

    redis-sentinel-26380.conf

    快速生成文件

    sed "s/26379/26380/g" redis-sentinel-26379.conf >  redis-sentinel-26380.conf

    redis-sentinel-26381.conf

    快速生成文件

    sed "s/26379/26381/g" redis-sentinel-26379.conf >  redis-sentinel-26381.conf

    3.添加后台运行参数,使得三个哨兵进程,后台运行

    [root@localhost redis-4.0.10]# echo "daemonize yes" >> redis-sentinel-26379.conf

    [root@localhost redis-4.0.10]# echo "daemonize yes" >> redis-sentinel-26380.conf

    [root@localhost redis-4.0.10]# echo "daemonize yes" >> redis-sentinel-26381.conf

    4.启动三个哨兵

     redis-sentinel redis-sentinel-26379.conf
     redis-sentinel redis-sentinel-26380.conf
     redis-sentinel redis-sentinel-26381.conf

    5.检查哨兵的通信状态

    redis-cli -p 26379  info sentinel

    查看结果如下之后,表示哨兵正常
        [root@localhost redis-4.0.10]# redis-cli -p 26379  info sentinel
        # Sentinel
        sentinel_masters:1
        sentinel_tilt:0
        sentinel_running_scripts:0
        sentinel_scripts_queue_length:0
        sentinel_simulate_failure_flags:0
        master0:name=s15master,status=ok,address=127.0.0.1:6381,slaves=2,sentinels=3


    6.杀死一个redis主库,6379节点,等待30s以内,检查6380和6381的节点状态
    kill 6379主节点
    redis-cli -p 6380 info replication
    redis-cli -p 6381 info replication
    如果切换的主从身份之后,(原理就是更改redis的配置文件,切换主从身份)

    7.恢复6379节点的数据库,查看是否将6379添加为新的slave身份

    六 redis-cluster安装配置

    1.准备6个redis数据库实例,准备6个配置文件redis-{7000....7005}配置文件

    -rw-r--r-- 1 root root 151 Jan 2 19:26 redis-7000.conf

    -rw-r--r-- 1 root root 151 Jan 2 19:27 redis-7001.conf

    -rw-r--r-- 1 root root 151 Jan 2 19:27 redis-7002.conf

    -rw-r--r-- 1 root root 151 Jan 2 19:27 redis-7003.conf

    -rw-r--r-- 1 root root 151 Jan 2 19:27 redis-7004.conf

    -rw-r--r-- 1 root root 151 Jan 2 19:27 redis-7005.conf

    redis.conf

    1 port 7000
    2 daemonize yes
    3 dir "/opt/redis/data"
    4 logfile "7000.log"
    5 dbfilename "dump-7000.rdb"
    6 cluster-enabled yes   #开启集群模式
    7 cluster-config-file nodes-7000.conf  #集群内部的配置文件
    8 cluster-require-full-coverage no  #redis cluster需要16384个slot都正常的时候才能对外提供服务,换句话说,只要任何一个slot异常那么整个cluster不对外提供服务。 因此生产环境一般为no

    2.启动6个redis数据库实例

    [root@localhost s15rediscluster]# redis-server redis-7000.conf [root@localhost s15rediscluster]# redis-server redis-7001.conf [root@localhost s15rediscluster]# redis-server redis-7002.conf [root@localhost s15rediscluster]# redis-server redis-7003.conf [root@localhost s15rediscluster]# redis-server redis-7004.conf [root@localhost s15rediscluster]# redis-server redis-7005.conf

     

    3.配置ruby语言环境,脚本一键启动redis-cluster

    1.下载ruby语言的源码包,编译安装 wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz

    2.解压缩 ./configure --prefix=/opt/ruby/ 释放makefile make && make install 编译且安装

    3.下载安装ruby操作redis的模块包 wget http://rubygems.org/downloads/redis-3.3.0.gem

    3.1 gem install redis    选yes

    4.配置ruby的环境变量
    echo $PATH

    vim /etc/profile
    写入最底行
    PATH=$PATH:/opt/ruby/bin/
    读取文件
    source /etc/profile

    5.通过ruby的包管理工具去安装redis包,安装后会生成一个redis-trib.rb这个命令
    一键创建redis-cluster 其实就是分配主从关系 以及 槽位分配 slot槽位分配
    /opt/redis-4.0.10/src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

    6.检查节点主从状态
    redis-cli -p 7000  info replication

    7.向redis集群写入数据,查看数据流向
    redis-cli  -c -p 7000    #这里会将key自动的重定向,放到某一个节点的slot槽位中
    set  name  s15
    set  addr shahe 

     

  • 相关阅读:
    Redis5排序
    Redis5 常用命令
    Redis5事务 和Watch
    PHP7 ini 配置大全
    PHP 开发者大会
    go and git 代理
    laravel 记录sql语句
    Vue,laravel , laravels 项目在nginx 配置文件
    python selenium right click on an href and choose Save link as... on Chrome.
    selenium借助AutoIt识别上传(下载)详解
  • 原文地址:https://www.cnblogs.com/zhangqing979797/p/10211521.html
Copyright © 2011-2022 走看看