zoukankan      html  css  js  c++  java
  • Redis之最大内存置换策略

    0.前言

    Redis默认最大内存大小是应用程序可访问的内存大小, 32位windows下是2GB, linux下是3GB. 64位下可以访问的内存为2^64字节, Redis提供了maxmemory字段来限制使用的最大内存. 既然提供了最大内存限制, 那么当我们程序达到最大值时, Redis使用了多种策略进行置换.Redis建议最大内存设置为物理内存的一半。

    1.Redis置换策略字段maxmemory-policy

    volatile-lru : 对具有生存周期的key进行LRU算法置换.
    volatile-random : 对具有生存周期的key进行随机置换.
    volatile-ttl : 对具有生存周期的key随机进行抽样, 置换出抽样中生存周期最短的.
    allkeys-lru : 对整个db进行LRU算法置换
    allkeys-random : 对整个db进行随机置换
    noeviction : 不进行置换

    volatile-random和allkeys-random策略, Redis直接在相应的数据集上随机并置换.

    volatile-ttl需要抽样, 抽样的大小由maxmemory-samples控制, 默认maxmemory-samples为5, 抽样越大算法精确度越高,但是消耗也越大.

    volatile-lru和allkeys-lru是对抽样的数据中选出最近最久未使用的Key置换出去.这里抽样的大小默认是16, 如果我们设置maxmemory-samples并且大于16的话, 抽样值和最大的保持一致.Redis设置了一个可置换池, 大小为16, 每次先进行抽样, 抽样之后与置换池中的数据进行比较, 选出最近最久未使用的16个Key放入置换池中, 从置换池中再选择一个Key进行置换.

  • 相关阅读:
    windows下安装rabbitmq
    selectors
    修改Docker默认镜像和容器的存储位置
    eclipse配置jdk的src.zip源代码步骤
    Zookeeper WINDOWS 安装配置
    zookeeper windows 入门安装和测试
    zookeeper集群搭建(windows环境下)
    ant使用指南详细入门教程
    linux查看系统版本和系统位数
    suse linux 命令
  • 原文地址:https://www.cnblogs.com/ourroad/p/4912365.html
Copyright © 2011-2022 走看看