`

redis最大缓存及key回收策略

阅读更多
一、最大缓存设置
示例:maxmemory 100mb
单位:mb,gb。
默认为0,没有指定最大缓存,如果有新的数据添加,超过最大内存,则会使redis崩溃,所以一点要设置。
设置maxmemory之后,配合的要设置缓存数据回收策略。

二、回收策略算法设置
当maxmemory限制到达的时候,Redis将采取的准确行为是由maxmemory-policy配置指令配置的。
    以下策略可用:
(1)、noeviction:当到达内存限制时返回错误。当客户端尝试执行命令时会导致更多内存占用(大多数写命令,除了DEL和一些例外)。
(2)、allkeys-lru:回收最近最少使用(LRU)的键,为新数据腾出空间。
(3)、volatile-lru:回收最近最少使用(LRU)的键,但是只回收有设置过期的键,为新数据腾出空间。
(4)、allkeys-random:回收随机的键,为新数据腾出空间。
(5)、volatile-random:回收随机的键,但是只回收有设置过期的键,为新数据腾出空间。
(6)、volatile-ttl:回收有设置过期的键,尝试先回收离TTL最短时间的键,为新数据腾出空间。

使用策略规则:
(1)、如果数据呈现幂律分布,也就是一部分数据访问频率高,一部分数据访问频率低,则使用allkeys-lru。
(2)、如果数据呈现平等分布,也就是所有的数据访问频率都相同,则使用allkeys-random。

redis回收算法,实际不是严谨的LRU算法,而是抽样回收数据,这样算是为了减少消耗内存使用,但是抽样回收的缓存和全部数据回收缓存差异非常小,或者根本就没有。

三、生产使用
(1)、先预测好系统所需要的内存高峰,部署相对应内存的缓存服务器。
(2)、设置maxmemory和相对应的回收策略算法,设置最好为物理内存的3/4,或者比例更小,因为redis复制数据等其他服务时,也是需要缓存的。以防缓存数据过大致使redis崩溃,造成系统出错不可用。牺牲一部分缓存数据,保存整体系统可用性。
分享到:
评论

相关推荐

    mybatis+redis缓存配置

    ### MyBatis与Redis缓存配置详解 #### 一、MyBatis缓存机制概述 在MyBatis中,缓存是一项重要的性能优化措施。它能够显著减少数据库的访问次数,提高应用程序的响应速度。MyBatis提供了两种级别的缓存支持:一级...

    redis面试题及答案.pdf

    通过合理配置最大内存使用量和淘汰策略,确保只有重要的数据被保留在缓存中,避免内存溢出。 最后,文中还提到了Java工程师学习交流群,强调了学习和提升技术的重要性,以及通过实践来积累经验,解决工作中遇到的...

    Go-通过Key前缀分析Redis的内存占用按内存大小排序导出结果到csv文件

    Go语言拥有简洁的语法,良好的并发支持,以及内置的垃圾回收机制,适合开发网络服务和高性能应用,如Redis分析工具。 2. **Redis数据库**: Redis是一个开源的、基于键值对的数据存储系统,常用于缓存、消息队列和...

    redis面试复习.xmind

    ### 解决redis的并发竞争key问题 ### 缓存预热 # redis事务 ### 一个简单的介绍并说明了一下resdis事物的不保证原子性 # redis集群 ### redis集群三种模式 ### Redis哈希槽 ### 什么情况下会导致整个集群不可用 ### ...

    Redis面试题集

    Redis 的数据淘汰策略包括 noeviction(禁止淘汰)、allkeys-lru(回收最少使用的键)、volatile-lru(回收过期集合中最少使用的键)、allkeys-random(回收随机键)、volatile-random(回收过期集合中随机键)、...

    30道Redis面试题.docx

    在内存不足时,Redis 提供了几种数据淘汰策略,如 noeviction(不删除)、allkeys-lru(回收最近最少使用的 Key)、volatile-lru(只在有过期时间的 Key 中回收)、allkeys-random(随机删除)、volatile-random(在...

    Redis 50 道面试题及答案.docx

    Redis 50 道面试题及答案 Redis 是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息队列等。Redis 的主要特点是高性能、支持多种数据结构、持久化和高可扩展性等。 标题:Redis 简介 ...

    NServiceKit.Redis.rar

    NServiceKit.Redis的`PooledRedisClientManager`实现了连接池管理,它会自动管理Redis连接的创建、回收和复用,减少因频繁创建和销毁连接带来的开销。在高并发场景下,使用连接池可以显著提升应用的性能。 除了基本...

    Redis面试知识点.pdf

    #### 11、Redis的回收策略(淘汰策略) - **noeviction**:当内存不足以容纳新写入数据时,返回错误。 - **allkeys-lru**:当内存不足时,移除最近最少使用的key。 - **volatile-lru**:当内存不足时,移除设置了...

    Redis 35 道面试题及答案.docx

    * Redis内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略(回收策略) * Redis提供6种数据淘汰策略:volatile-lru、volatile-ttl、volatile-random、allkeys-lru、allkeys-random、no-eviction(驱逐)

    分布式缓存 Redis + Memcached 经典面试题!.pdf

    4. **Redis的回收策略**: Redis使用LRU(Least Recently Used)算法来回收内存,即优先淘汰最近最少使用的数据。 5. **Redis分区**: 分区是为了扩展Redis的内存和计算能力,通过将数据分散到多台机器,可以利用...

    Redis配置文件详解

    当达到最大内存限制后,Redis会尝试回收内存,但如果无法回收足够内存,则无法进行写入操作。 appendonly:设置是否在每次更新操作后进行日志记录。默认关闭,如果开启,则在断电时能减少数据丢失的风险。 以上是...

    2024最新SpringCloud微服务开发与实战 视频教程 下载 下载 因为太大存百度云盘3.zip

    │ Redis面试篇-13.Redis缓存-缓存一致性.mp4 │ Redis面试篇-14.Redis缓存-缓存穿透.mp4 │ Redis面试篇-15.Redis缓存-缓存雪崩.mp4 │ Redis面试篇-16.Redis缓存-缓存击穿.mp4 │ ├─day11-微服务面试篇 ...

    2024最新SpringCloud微服务开发与实战 视频教程 下载 下载 因为太大存百度云盘2.zip

    │ Redis面试篇-13.Redis缓存-缓存一致性.mp4 │ Redis面试篇-14.Redis缓存-缓存穿透.mp4 │ Redis面试篇-15.Redis缓存-缓存雪崩.mp4 │ Redis面试篇-16.Redis缓存-缓存击穿.mp4 │ ├─day11-微服务面试篇 ...

    2024最新SpringCloud微服务开发与实战 视频教程 下载 下载 因为太大存百度云盘4.zip

    │ Redis面试篇-13.Redis缓存-缓存一致性.mp4 │ Redis面试篇-14.Redis缓存-缓存穿透.mp4 │ Redis面试篇-15.Redis缓存-缓存雪崩.mp4 │ Redis面试篇-16.Redis缓存-缓存击穿.mp4 │ ├─day11-微服务面试篇 ...

    redis-笔记

    #### 五、Redis的优化策略 1. **合理选择数据结构**:根据业务需求选择合适的数据类型,减少内存占用。 2. **设置合理的过期时间**:对于不常用的数据设置过期时间,自动回收内存。 3. **避免大Key**:大Key会占用...

    Redis 60 道面试题及答案.docx

    Redis是一种高性能的键值存储系统,可以用作数据库、缓存、消息队列等。以下是Redis相关的知识点总结: Redis的优势 1. 支持丰富的数据类型:Redis支持的数据类型有string、list、set、sorted set、hash等,可以...

    (2024)Redis,快看看这40道面试题.pdf

    根据给定文件的信息,我们可以提炼出一系列关于Redis的重要知识点,这些知识点主要涵盖了Redis的基本概念、数据类型、优势对比、持久化机制、性能问题及其解决办法、过期键处理策略、淘汰策略、内存管理机制、同步...

Global site tag (gtag.js) - Google Analytics