zoukankan      html  css  js  c++  java
  • 如何保证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字节类型

  • 相关阅读:
    配置 Sublime Text 用 Node.js 执行 JavaScript 程序
    KNN算法
    堆排序(heap sort)
    复原二叉树
    二叉树的广度优先遍历(层次遍历)
    二叉树(BT)相关
    BST(二叉搜索树)相关
    二叉树遍历(先序、中序、后序)
    排序算法
    查找算法
  • 原文地址:https://www.cnblogs.com/dalianpai/p/14136225.html
Copyright © 2011-2022 走看看