• Redis核心知识点


    Redis核心知识点

    一、两种持久化

    • RDB快照

    快照间隔内的数据会丢失;如果数据量很大,保存快照时间会比较长

    • AOF日志(Append Only File)

    同步选项:always(每个命令同步)、everysec(每秒同步一次)、no(系统决定)

    二、数据过期策略

    1.定时删除

    redis会把设置了过期时间的key放在单独的字典中,定时遍历来删除到期的key。

    • 每100ms从过期字典中随机挑选20个,把其中过期的key删除;
    • 如果过期的key占比超过1/4,重复上面步骤

    为了保证不会循环过度,导致卡顿,扫描时间上限默认不超过25ms。根据以上原理,系统中应避免大量的key同时过期,给要过期的key设置一个随机范围。

    2.惰性删除

    过期的key并不一定会马上删除,而是查询时,去判断是否过期,如果过期了才删除。

    三、数据淘汰策略

    可以设置内存最大使用量,当内存使用量超出时,会施行数据淘汰策略。

    Redis六种淘汰策略:

    volatile-lru:最近最少使用淘汰(有过期时间的数据集)

    volatile-ttl:将要过期的淘汰(有过期时间的数据集)

    volatile-random:随机淘汰(有过期时间的数据集)

    allkeys-lru:最近最少使用的淘汰(全部数据集)

    allkeys-random:随机淘汰(全部数据集)

    noeviction:禁止强制淘汰(全部数据集)

    Redis 4.0 引入了 LFU (访问频率最少)

    volatile-lfu :访问频率最少(有过期时间的数据集)

    allkeys-lfu:访问频率最少(全部数据集)

    LFU 策略通过统计访问频率

    四、事务

    事务中的多个命令被一次性发送给服务器,而不是一条一条发送,这种方式被称为流水线,它可以减少客户端与服务器之间的网络通信次数从而提升性能。

    Redis 最简单的事务实现方式是使用 MULTIEXEC 命令将事务操作包围起来。

    五、集群备份复制,高可用

    通过使用 slaveof <主host> 命令来让一个服务器成为另一个服务器的从服务器。

    连接过程

    先快照,后增量复制

    主从链

    解决从服务器太多。(主服务器可能无法很快地更新所有从服务器,或者重新连接和重新同步从服务器将导致系统超载。)增加中间层分担。

    哨兵(Sentinel)

    redis集群哨兵模式,保证集群高可用。Sentinel(哨兵)可以监听集群中的服务器,并在主服务器进入下线状态时,自动从从服务器中选举出新的主服务器。

  • 相关阅读:
    destoon代码从头到尾捋一遍
    php中foreach()函数与Array数组经典案例讲解
    刷题比赛
    #Math
    福慧双修(both)
    NOIP17提高模拟训练18 长途旅行(travel)
    NOIP提高组模拟训练18 正确答案(answer)
    NOIP17提高组模拟赛17 -乐曲创作(music)
    #2017 Multi-University Training Contest
    CodeForces
  • 原文地址:https://www.cnblogs.com/aric2016/p/12201027.html
Copyright © 2020-2023  润新知