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字节类型

  • 相关阅读:
    vmodel.lazy详解
    import Vue from 'vue'如何解释?
    ubuntu安装deb文件包
    vue安装
    多线程和多进程的区别
    SLH(Location Sensitive Hash)学习
    hadoop学习笔记(一)简介
    [转]关于协同过滤的好文章
    Linear Regression练习
    regularized 线性回归练习
  • 原文地址:https://www.cnblogs.com/dalianpai/p/14136225.html
Copyright © 2011-2022 走看看