`
xiaoZ5919
  • 浏览: 404701 次
  • 性别: Icon_minigender_1
  • 来自: 安平人@北京
博客专栏
Group-logo
Netty学习笔记
浏览量:73196
社区版块
存档分类
最新评论

Redis Object的Idle Time

 
阅读更多
1. 获取object的idletime的算法
    if (server.lruclock >= o->lru) {
        return (server.lruclock - o->lru) * REDIS_LRU_CLOCK_RESOLUTION;
    } else {
        return ((REDIS_LRU_CLOCK_MAX - o->lru) + server.lruclock) *
                    REDIS_LRU_CLOCK_RESOLUTION;
    }
2.redis每隔 REDIS_LRU_CLOCK_RESOLUTION更新一次server.lruclock,REDIS_LRU_CLOCK_RESOLUTION默认为10
server.lruclock = (server.unixtime/REDIS_LRU_CLOCK_RESOLUTION) & REDIS_LRU_CLOCK_MAX;
3.#define REDIS_LRU_CLOCK_MAX ((1<<21)-1) 
4.Redis为了节省内存,采取了一个折中的方案,采用21bit(redis中的comment说到是22bit,从上面来看应该是21bit)再乘以10s的方案,每隔10s更新一下server.lruclock,2^22能保存到时间间隔也只有1.5年左右,如果超过1.5年怎么办?算法1为了解决这个问题,提供了两个if分支,第一种是常见情况,object在读写以后更新lru,而系统每隔10s更新一次,假设一段时间内这个object没有被访问过那么就会有server.lruclock >= o->lru。第二种情况,如果超过1.5年server.lruclock就有可能变成一个较小的值,使得某些object的lru,大于server.lruclock,于是就有第二个if分支。
0
0
分享到:
评论

相关推荐

    Spring Boot框架集成Redis教程.doc版

    spring.redis.timeout=0 ``` 3. **配置 Cache**:Spring Boot 提供了 `@EnableCaching` 注解来启用缓存支持。你可以创建一个配置类,如 `RedisConfig`,并实现自定义的 `KeyGenerator` 和 `CacheManager`,以确保...

    Spring整合Redis代码

    timeout: 5000ms jedis: pool: max-active: 8 max-idle: 8 min-idle: 0 ``` 这里配置了Redis服务器的地址、端口、数据库编号等信息,以及连接池的相关参数。 然后,创建RedisTemplate配置类。在Spring中,...

    Spring Boot 整合 Redis.docx

    timeout: 5000ms database: 0 ``` ### 4. 自定义配置与缓存管理 创建一个名为`RedisConfiguration`的配置类,继承`CachingConfigurerSupport`,并使用`@EnableCaching`注解来开启缓存支持。在这个类中,你可以...

    redis存储数据.rar

    5. `spring.redis.timeout`: 连接超时时间,单位毫秒。 6. `spring.redis.jedis.pool.max-active`: 连接池最大活动连接数。 7. `spring.redis.jedis.pool.max-idle`: 连接池最大空闲连接数。 8. `spring.redis.jedis...

    springboot整合redis(单机 集群).pdf

    spring.redis.timeout=0 ``` 以上配置包括了数据库索引、主机地址、端口、密码以及连接池的相关设置。一旦配置完成,SpringBoot会自动创建一个`RedisTemplate`实例,供我们在需要使用Redis的地方注入并调用。 例如...

    redis命令手册

    **示例**: `OBJECT idletime mykey` 获取 `mykey` 的空闲时间。 ##### 1.10 PERSIST **命令**: `PERSIST key` **功能**: 移除键的过期时间,使其永不过期。 **返回值**: 如果键有设置过期时间则返回 1,否则返回 0...

    Spring集成Redis

    timeout: 5000ms (连接超时时间) jedis: pool: max-active: 8 (最大连接数) max-wait: -1ms (最大等待时间,-1表示无限制) max-idle: 8 (最大空闲连接) min-idle: 0 (最小空闲连接) ``` 然后,定义...

    redis中文教程

    - `IDLETIME`:返回键的空闲时间。 - `REFCOUNT`:返回键的引用计数。 - `ENCODING`:返回键的编码方式。 - **返回值:** 不同子命令有不同的返回值。 ##### 1.10 PERSIST **命令格式:** `PERSIST key` - **...

    Redis在springboot中的使用教程

    timeout: 6000 pool: max-active: 1000 max-wait: -1 max-idle: 10 min-idle: 5 ``` 四、RedisConfig 类 我们需要创建一个 RedisConfig 类来配置 RedisTemplate: ```java @Configuration public class ...

    在SpringBoot中添加Redis及配置方法

    timeout: 5000 database: 0 jedis: pool: max-idle: 8 max-wait: min-idle: 0 ``` 在配置文件中添加Redis连接信息后,需要创建一个RedisConfig配置类,该类用于配置Redis缓存。例如: ``` @Configuration @...

    Spring Boot中Redis数据库的使用实例

    spring.redis.timeout=0 ``` 为了使用 Redis 作为缓存,可以启用 Spring 的缓存抽象并配置 Redis 缓存管理器。创建一个名为 `RedisConfig` 的配置类,并使用 `@Configuration` 和 `@EnableCaching` 注解来启用缓存...

    SpringBoot 整合Redis 数据库的方法

    timeout: 0 ``` 3. **配置RedisTemplate**:创建名为`RedisConfig`的Java类,继承`CachingConfigurerSupport`,并定义`cacheManager`和`redisTemplate`两个@Bean,用于配置缓存管理和模板对象。RedisTemplate可以...

    spring boot(三)之Spring Boot中Redis的使用

    spring.redis.timeout=0 ``` 三、实现缓存功能 在 Spring Boot 中,可以使用 @EnableCaching 注解来启用缓存功能。例如: ```java @Configuration @EnableCaching public class RedisConfig extends ...

    springboot整合redis进行数据操作(推荐)

    spring.redis.timeout=5000 ``` 在配置完成后,我们需要创建一个配置类 `RedisConfig`,该类通常会包含 `@Configuration` 和 `@EnableCaching` 注解,启用缓存功能。在这个配置类中,我们将定义两个 Bean:`...

    Spring boot+redis实现消息发布与订阅的代码

    timeout: 5000 ``` 配置完成后,我们需要自定义`RedisTemplate`以适应我们的需求。在Spring Boot中,我们通常会创建一个名为`RedisConfiguration`的配置类,并通过@Bean注解来实例化`RedisTemplate`。在这里,我们...

    SpringBoot使用Redis缓存的实现方法

    spring.redis.timeout=0 ``` 为了进一步自定义Redis缓存的行为,我们可以创建一个名为`RedisConfig`的配置类,这里我们将配置缓存管理器和序列化方式: ```java package springboot.config; import org.spring...

    spring整合EhCache 的简单例子

    - 根据业务需求选择合适的缓存策略,如TTL(Time To Live)和TTM(Time To Idle)。 - 合理设计缓存键,确保唯一性和可预测性。 - 注意缓存同步问题,尤其是在分布式环境中。 - 定期清理无用的缓存,避免内存...

Global site tag (gtag.js) - Google Analytics