`
haoran_10
  • 浏览: 442610 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

redis(5)、redis最大缓存设置策略

阅读更多
 
一、最大缓存设置
示例: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崩溃,造成系统出错不可用。牺牲一部分缓存数据,保存整体系统可用性。
4
4
分享到:
评论

相关推荐

    redis本地缓存与redis缓存

    然而,由于涉及网络通信,Redis缓存的读写速度相对于本地缓存略慢,但可以通过设置合适的缓存策略(如LRU、LFU)和主从复制、分片等技术来优化性能。 在实际应用中,本地缓存通常用于短期、频繁访问且对数据一致性...

    springMybatis+redis三级缓存框架

    在"springMybatis+redis三级缓存框架"中,MyBatis的二级缓存作为第一级,Redis作为第二级,而Redis中的缓存失效策略(例如LRU,TTL)则可以进一步优化数据的读取。如果一级缓存中未找到所需数据,系统会查询二级缓存...

    Redis用作二级缓存

    Redis作为二级缓存是数据库系统优化的一个重要策略,特别是在高并发、大数据量的场景下,可以显著提升应用性能。在Mybatis中,二级缓存是一个跨Mapper共享的区域,用于存储查询结果,避免了重复查询数据库,从而降低...

    如何应对redis缓存雪崩,redis缓存穿透,redis缓存击穿,redis应对高并发的解决方案

    redis缓存雪崩,redis缓存穿透,redis缓存击穿 redis应对高并发造成的雪崩、穿透、击穿

    spring + ehcache + redis两级缓存

    5. **监控与维护**: 最后,为了确保缓存系统的健康运行,我们需要监控缓存的命中率、大小、性能等指标,并根据实际情况调整缓存策略。 通过这种两级缓存架构,我们可以在本地Ehcache提供快速响应的同时,利用Redis...

    mybatis+redis缓存配置

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

    springboot+jpa(hibernate配置redis为二级缓存) springboot2.1.4

    在本文中,我们将深入探讨如何在Spring Boot 2.1.4.RELEASE项目中结合JPA(Java Persistence API)和Hibernate实现Redis作为二级缓存。首先,我们需要理解这些技术的基本概念。 Spring Boot 是一个用于简化Spring...

    Redis_Redis分布式缓存_

    Redis,作为一个高性能的键值数据存储系统,常被用作分布式缓存,以提升应用程序的性能和响应速度。本文将深入探讨Redis...在实际应用中,应结合业务场景选择合适的数据结构和缓存策略,以最大化利用Redis的优势。

    redis分布式缓存中间件培训PPT

    1. 缓存机制 – Redis提供了键值过期时间设置,并且也提供了灵活控制最大内存和内存溢出后的淘汰策略。 2. 排行榜系统 – Redis提供了列表和有序集合数据结构,合理地使用这些数据结构可以很方便地构建各种排行榜...

    从0到1项目搭建-集成 Redis 配置MyBatis二级缓存

    基于 SpringBoot 从0搭建一个企业级开发项目,基于SpringBoot 的项目,并集成MyBatis-Plus、Redis、Druid、Logback ,并使用 Redis 配置 MyBatis 二级缓存。

    Redis思维导图分布式缓存-基于Redis集群解决单机Redis存在的问题

    分布式缓存-基于Redis集群解决单机Redis存在的问题。分布式缓存-基于Redis集群解决单机Redis存在的问题。分布式缓存-基于Redis集群解决单机Redis存在的问题。分布式缓存-基于Redis集群解决单机Redis存在的问题。...

    VB_redis缓存读写类及调用demo

    本示例是关于如何在VB6.0环境下使用VB.Redis缓存读写类来与Redis进行交互,使得古老的VB6程序也能享受到现代缓存服务的优势。 首先,VB.Redis缓存读写类是由用户fj543原创的,它基于`mswinsck.OCX`控件进行封装,这...

    thinkphp5默认redis缓存新增方法

    这里说明下,这个不是增加redis扩展,而是在默认thinkPHP5默认的redis方法上新增其他的方法,现在TP5redis的方法太少了,只有基本的设置取值,连list的方法都没有,这里主要就是针对这种情况新增新的方法,如消息...

    redis缓存服务器

    Redis 是一个高性能的键值对数据存储系统,常被用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合,这使得 Redis 在各种场景下有着广泛的应用。Redis 以其内存高速读写性能...

    扩展spring boot cache实现redis一二级分布式缓存

    在`@EnableCaching`注解的配置类中,使用`CacheManager`的`RedisCacheManagerBuilder`来创建Redis缓存管理器。 ```java @Configuration @EnableCaching public class CacheConfig { @Bean public CacheManager ...

    基于Redis缓存商城分类以及商品信息Demo

    "基于Redis缓存商城分类以及商品信息Demo"是一个很好的实践案例,它利用Redis的高性能特性来提升商城系统的性能。以下将详细讲解这个Demo所涉及的知识点。 1. Redis简介: Redis是一个开源的、基于内存的数据结构...

    Mybatis-plus基于redis实现二级缓存过程解析

    在上面的代码中,我们使用了RedisTemplate来操作Redis缓存,并使用ReentrantReadWriteLock来实现读写锁,以确保缓存的线程安全。 最后,我们需要在Mapper接口中使用自定义的缓存管理类: ```java @Mapper public ...

    SpringBoot项目+MybatisPlus使用+Redis缓存

    在SpringBoot项目中集成MybatisPlus和Redis,可以实现高效的数据访问和缓存策略。例如: 1. **MybatisPlus整合Redis**:在需要缓存的查询方法上添加`@Cacheable`注解,通过Spring Cache抽象层,将结果存储到Redis中...

    redis多级缓存搭建资料

    总结,Redis多级缓存的搭建涉及到多个层面,包括缓存设计、数据同步策略、一致性管理以及高可用性。理解这些知识点,能帮助你构建高效、稳定的缓存系统,优化应用程序的性能。通过学习提供的资料,你将能深入理解并...

    JFinal + Redis 实现action的数据缓存

    JFinal + Redis 实现action的数据缓存 ...即可实现redis缓存 需要在Appconfig中configPlugin代码进行插件加入 RedisPlugin appRedis = new RedisPlugin("demo_app", "127.0.0.1", 6378); me.add(appRedis);

Global site tag (gtag.js) - Google Analytics