首页 > 数据库 >Redis中的过期策略

Redis中的过期策略

时间:2023-07-31 21:13:46浏览次数:45  
标签:策略 过期 expires Redis key 字典

redis过期策略

定时过期、惰性过期、定期过期
问题:使用expire key 60,在key60s之后key就会过期,之后如何清除key

定时过期

每个设置过期时间的key都创建一个定时器,到时间就会对key进行清除。该策略可以立即清除过期key,对内存友好,但是需要消耗大量的cpu时间去清理过期数据,从而影响响应时间和吞吐量。

惰性过期

只有当访问一个key时,才会判断这个key是否过期,过期就清除。该策略可以节省cpu资源,但是对内存不够友好。极端情况下会出现大量的过期key没有被清理,占用内存。

定期过期

每隔一段时间,扫描一定数量数据库中的expires字典中的key,清除过期的key。该策略是前两种的一个折中策略,cpu和内存达到最优平衡。
expires字典:当我们在 Redis 中设置一个键的过期时间时,该键会被添加到 expires 字典中,并在指定的过期时间后自动从数据库中删除。expires 字典以键为索引,值为键的过期时间戳。当 Redis 中的某个键过期时,Redis 服务器会在后台自动将其从数据库中删除。Redis 服务器使用定时器来监视 expires 字典中键的过期时间,定期检查键是否已过期。当键过期时,定时器会将其标记为即将删除,并在适当的时候释放该键所占用的内存空间。
redis采用的了惰性过期和定期过期两种过期策略,定期过期。

标签:策略,过期,expires,Redis,key,字典
From: https://www.cnblogs.com/yliunyue/p/17594494.html

相关文章

  • redis主从复制
    1.概念指将一台Redis服务器的数据,复制到其它的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。2.配置步骤1、在/etc/redis下面,将6379.conf拷贝两份,分别称为6380.conf与6381.conf2、修改配置文件6380.conf与6381.conf中......
  • Java面试题 P18:Redis篇:Redis使用场景-缓存-缓存雪崩
          缓存雪崩:是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量的请求到达数据库,带来巨大压力。                            ......
  • redis快-IO多路复用
    IO多路复用Redis中的IO多路复用在Redis中,也使用了I/O多路复用来实现高效的网络通信。Redis是一个高性能的键值存储数据库,其主要通过使用非阻塞I/O和I/O多路复用来处理并发连接,提高网络通信的性能。Redis使用了多个I/O多路复用模型,根据不同的操作系统平台和版本,可能采用select、......
  • github学习笔记(九):分支管理策略
    合并的分支到底是如何管理的呢?分支的合并通常git使用Fastforward模式来合并分支,但是这种模式下一旦删除分支,信息也随之消失。如果强制禁用FastForward模式,git就会在merge时生成一个新分支,这样从分支历史上就可以看出分支信息。例子创建并切换分支、修改文件、提交新的com......
  • Redis proxy 组件之 Predixy
    Predixy是一款高性能全特征redis代理,支持redis-sentinel和redis-cluster组件特性:Predixy支持的功能为什么需要redisproxy?屏蔽redis架构的复杂性,使后端开发人员无论是用redissentinel还是rediscluster集群,都像使用单机redis实例一样方便。集群扩缩容......
  • Linux Redis配置
    Redis是一个开源的高性能键值对存储系统,具有快速、灵活和可扩展的特性。它是一个基于内存的数据结构存储系统,可以用作数据库、缓存和消息代理。Redis的一些主要特点和用途:高性能:Redis数据存储在内存中,因此能够提供极快的读写操作。它采用单线程模型和异步I/O,避免了多线程的......
  • Redis从入门到放弃(5):事务
    1、事务的定义Redis的事务提供了一种“将多个命令打包,然后一次性、按顺序地执行”的机制。redis事务的主要作用就是串联多个命令防止别的命令插队。但是,事务并不具有传统数据库事务的特性,如回滚。2、事务命令Redis中的事务可以通过以下命令来执行:MULTI:用于开启一个事务块,......
  • redis monitor 监控说明
    1、监视器Redis监视器是用于监控或观察Redis服务器指令执行的一种特殊的客户端。创建Redis监视器的方式也很简单,启动一个客户端后,执行monitor指令,客户端将进入监视器状态。进入监视器状态的客户端将不再接受Redis指令输入,而称为了一个实时接受服务器指令执行信息的消费者。如下图......
  • python操作redis
    redis/relate一、python连接redis1.方式一importredis#创建连接对象r=redis.Redis(host='127.0.0.1',port=6379)r.set('name','zhangsan')print(r.get('name'))2.方式二使用连接池当并发量比较高的时候,频繁的创建连接和释放连接会对性能有影响,使......
  • redis常见的5中数据类型以及相关命令
    redisredis简介redis是采用ASNIC语言编写的采用的是C/S架构是非关系型数据库以键值对的形式存储在内存中redis在windows中的启动命令redis-serverredis.windows.confredis-cli切换到客户端一、redis的数据类型1.String(字符串)最基本的数据结构,可以......