• 如何保证Redis中存的都是热点数据?


    具体的可以看之前的这篇博客,考的就是Redis的逐出算法。

    达到最大内存后的,对被挑选出来的数据进行删除的策略
    影响数据逐出的相关配置
    检测易失数据(可能会过期的数据集server.db[i].expires )
    ① volatile-lru:挑选最近最少使用的数据淘汰
    ② volatile-lfu:挑选最近使用次数最少的数据淘汰
    ③ volatile-ttl:挑选将要过期的数据淘汰
    ④ volatile-random:任意选择数据淘汰
    检测全库数据(所有数据集server.db[i].dict )
    ⑤ allkeys-lru:挑选最近最少使用的数据淘汰
    ⑥ allkeys-lfu:挑选最近使用次数最少的数据淘汰
    ⑦ allkeys-random:任意选择数据淘汰
    放弃数据驱逐
    ⑧ no-enviction(驱逐):禁止驱逐数据( redis4.0中默认策略),会引发错误OOM( Out Of Memory)

    场景:

    数据库中有1000w的数据,而redis中只有50w数据,如何保证redis中数据都是热点数据?

    方案:

    限定 Redis 占用的内存,Redis 会根据自身数据淘汰策略,留下热数据到内存。所以,计算一下 50W 数据大约占用的内存,然后设置一下 Redis 内存限制即可,并将淘汰策略为volatile-lru或者allkeys-lru。

    设置Redis最大占用内存:

    打开redis配置文件,设置maxmemory参数,maxmemory是bytes字节类型

  • 相关阅读:
    web--ajax--json
    4.26
    4.25
    4.23
    4.22
    4.20
    4.19
    4.18
    4月问题总结章
    4.17
  • 原文地址:https://www.cnblogs.com/dalianpai/p/14136225.html
Copyright © 2020-2023  润新知