zoukankan      html  css  js  c++  java
  • 程序员谈话系列——关于redis的一些理解(一)

    一,Redis数据丢失,断电怎么办?

    在redis当中有RDB和AOF备份操作,RDB是每隔一段时间去同步redis,生成二进制文件。AOF将写命令加到一个appendonly的文件中,数据量比较全相对实时,但是文件比较大。RDB是bgsave命令,后台fork子进程,通过写时复制,生成的redis文件大的话就会有很大的影响

    二,redis集群怎么保证?

    制定哨兵模式,当master出现宕机的时候,从slave中选取最优的,保证高可用性。

    三,集群脑裂现象怎么解决?

    预防脑裂——设置超时:如 - 链接超时设置为2秒。任何链接只能在2秒内工作。那么哨兵选举新的master,可以延时2秒。 异地多活:提升网络健康状态,保证硬件不出现问题,就不会有链接中断的可能,且万一链接中断,一定是master对外所有链接中断。

    解决脑裂——设置监控中心,提供预警功能。线下人为处理脑裂后果。 定时扫描,同步数据。

    四,redis初始化时如何同步数据库

    启动一台slave 的时候,会发送一个psync命令给master ,如果是这个slave第一次连接到master,他会触发一个全量复制。master就会启动一个线程,生成RDB快照,还会把新的写请求都缓存在内存中,RDB文件生成后,master会将这个RDB发送给slave的,slave拿到之后做的第一件事情就是写进本地的磁盘,然后加载进内存,然后master会把内存里面缓存的那些新命名都发给slave。

    五,缓存击穿怎么解决?

    Hot Key在某一时间突然失效,出现数据崩溃现象。

    1,缓存时间永不失效

    2,用分布式锁避免直接落在库中:set nx可以用jedis实现。(如何避免死锁的现象?)

    3,设置一个多级缓存,避免直接查询数据库,使用eache。

  • 相关阅读:
    Codeforces 1265A Beautiful String
    1039 Course List for Student (25)
    1038 Recover the Smallest Number (30)
    1037 Magic Coupon (25)
    1024 Palindromic Number (25)
    1051 Pop Sequence (25)
    1019 General Palindromic Number (20)
    1031 Hello World for U (20)
    1012 The Best Rank (25)
    1011 World Cup Betting (20)
  • 原文地址:https://www.cnblogs.com/ffdsj/p/12555036.html
Copyright © 2011-2022 走看看