• Redis的配置文件和主从复制


    四、 redis.conf 简单解读

    1. 在哪

    安装的时候肯定看到了,在文件夹里

    2. 字节

    ​ 1. 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit

    2.  对大小写不敏感
    

    3. 分割

    1. 可以像 spring的配置文件一样,可以include 包含

    4. 通用

    1. daemonize no 在守护进程下运行,要改成yes

    2. pidfile : 进程号文件

    3. port : 端口

    4. tcp-backlog : tcp

      设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列 + 已经完成三次握手队列。
      在高并发环境下你需要一个高backlog值来避免慢客户端连接问题。注意Linux内核会将这个值减小到/proc/sys/net/core/somaxconn的值,所以需要确认增大somaxconn和tcp_max_syn_backlog两个值
      
    5. timeout :

    6. bind

    7. tcp-keepalive

    8. loglevel : 日志水平,为四个种类

    9. logfile : 日志文件

    10. syslog-enabled

      1. 是否把日志输出到syslog中
    11. syslog-ident

      1. 指定syslog里的日志标志
    12. syslog-facility

      1. 指定syslog设备,值可以是USER或LOCAL0-LOCAL7
    13. databases : 数据库数量 16 个

    5. 快照 Snapshotting

    1. save 秒钟 写操作次数
      1. RDB 是整个内存的快照
      2. 条件
        1. 是1分钟内改了1万次,
        2. 或5分钟内改了10次,
        3. 或15分钟内改了1次。
      3. 禁用
        1. 如果想禁用RDB持久化的策略,只要不设置任何save指令,或者给save传入一个空字符串参数也可以
    2. stop-writes-on-bgsave-error
      1. 如果配置成no,表示你不在乎数据不一致或者有其他的手段发现和控制
    3. rdbcompression
    4. rdbcompression:对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采,LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能
    5. rdbchecksum
    6. rdbchecksum:在存储快照后,还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能
    7. dbfilename
    8. dir

    6. REPLICATION复制

    7.SECURITY安全

    1. 设置密码
      1. config set requirepas “123456”
    2. 登录
      1. auth 123456

    8.LIMITS限制

    1. maxclients :设置redis同时可以与多少个客户端进行连接。默认情况下为10000个客户端
    2. maxmemory :设置redis可以使用的内存量
      1. 一旦到达内存使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定
    3. maxmemory-policy
      1. volatile-lru:使用LRU算法移除key,只对设置了过期时间的键
      2. allkeys-lru:使用LRU算法移除key
      3. volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键
      4. allkeys-random:移除随机的key
      5. volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key
      6. noeviction:不进行移除。针对写操作,只是返回错误信息
    4. maxmemory-samples
      1. 设置样本数量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小,redis默认会检查这么多个key并选择其中LRU的那个

    9.APPEND ONLY MODE追加

    1. appendonly

    2. appendfilename

    3. appendfsync

      1. always : 同步持久化
      2. everysec : 异步操作
      3. no
    4. no-appendfsync-on-rewrite:重写时是否可以运用Appendfsync,用默认no即可,保证数据安全性。

    5. auto-aof-rewrite-min-size:设置重写的基准值

    6. auto-aof-rewrite-percentage:设置重写的基准值

    五、 redis 的复制

    1. 是什么

    ​ 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,

    自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主

    1. 读写分离
    2. 容灾恢复

    2. 配置

    1. 配从(库)不配主(库)

    2. 从库配置:slaveof 主库IP 主库端口

      1. 每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件
      2. info replication : 查看配置信息
    3. 修改配置文件细节操作

      1. 拷贝多个redis.conf文件
      2. 开启daemonize yes
      3. pid文件名字
      4. 指定端口
      5. log文件名字
      6. dump.rdb名字
    4. 常用3 招

      1. 一主二仆
        1. 问题
          • 从机 第一次 全写,,以后 随写
          • 从机只负责 读,,不能写
          • 主机shutdown,,从机待命
          • 主机回来,从机连接
          • 从机 重启,必须重新配置绑定
      2. 薪火相传
        1. 像是接力赛 一样
        2. 中途变更向,会清楚之前的数据,重新考呗最新的
      3. 反客为主
        1. 当主机 宕机 后,在从机上手动选择 一个, 执行 slaveof no one 变成主机
        2. 当主机重启,属于另外一个系列,
    5. 复制原理

      由于是内存,可以参考 计算机组成原理的讲解

      1. 先 第一次连接 全量复制,,,然后增量复制

    3. 哨兵模式

    1. 反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库

    2. 自定义的/myredis目录下新建sentinel.conf文件,名字绝不能错

    3. 内容

      1. sentinel monitor 被监控数据库名字(自己起名字) 127.0.0.1 6379 1
      2. 上面最后一个数字1,表示主机挂掉后salve投票看让谁接替成为主机,得票数多少后成为主机
    4. 启动哨兵

      1. redis-sentinel /myredis/sentinel.conf
      2. 上述目录依照各自的实际情况配置,可能目录不同
    5. 问题

      1. 如果 主机 宕机 后, 重启,直接变成 从机
    6. 一组sentinel能同时监控多个Master

    4. 缺点 : 复制延时

  • 相关阅读:
    【回溯】数字排列问题
    Price List
    NanoApe Loves Sequence-待解决
    【回溯】n皇后问题
    安卓 学习之旅 入门
    mysql链接 显示 error: 'Access denied for user 'root'@'localhost' (using password: NO)'
    javaweb 实战_1
    java 插件安装
    leetcode 最长有效括号
    hdu 1074 Doing Homework
  • 原文地址:https://www.cnblogs.com/YJBlog/p/11815495.html
Copyright © 2020-2023  润新知