返回顶部
首页 > 资讯 > 数据库 >redis实现数据删除策略和逐出算法
  • 283
分享到

redis实现数据删除策略和逐出算法

2024-04-02 19:04:59 283人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关Redis实现数据删除策略和逐出算法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数据存储和有效期在 redis 工作流程中,过期的数据并不需

这篇文章将为大家详细讲解有关Redis实现数据删除策略和逐出算法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

数据存储和有效期

redis 工作流程中,过期的数据并不需要马上就要执行删除操作。因为这些删不删除只是一种状态表示,可以异步的去处理,在不忙的时候去把这些不紧急的删除操作做了,从而保证 redis 的高效

数据的存储

在redis中数据的存储不仅仅需要保存数据本身还要保存数据的生命周期,也就是过期时间。在redis 中 数据的存储结构如下图:

redis实现数据删除策略和逐出算法

获取有效期

Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过TTL指令获取其状态

redis实现数据删除策略和逐出算法

删除策略

在内存占用与CPU占用之间寻找一种平衡,顾此失彼都会造成整体redis性能的下降,甚至引发服务器宕机或内存泄漏。

定时删除

创建一个定时器,当key设置过期时间,且过期时间到达时,由定时器任务立即执行对键的删除操作

优点

节约内存,到时就删除,快速释放掉不必要的内存占用

缺点

CPU压力很大,无论CPU此时负载多高,均占用CPU,会影响redis服务器响应时间和指令吞吐量

总结

用处理器性能换取存储空间

惰性删除

数据到达过期时间,不做处理。等下次访问该数据,如果未过期,返回数据。发现已经过期,删除,返回不存在。这样每次读写数据都需要检测数据是否已经到达过期时间。也就是惰性删除总是在数据的读写时发生的。

expireIfNeeded函数

对所有的读写命令进行检查,检查操作的对象是否过期。过期就删除返回过期,不过期就什么也不做~。

执行数据写入过程中,首先通过expireIfNeeded函数对写入的key进行过期判断。


robj *lookupKeyWrite(redisDb *db, robj *key) {

 // 删除过期键
 expireIfNeeded(db,key);

 // 查找并返回 key 的值对象
 return lookupKey(db,key);
}
您可能感兴趣的文档:

--结束END--

本文标题: redis实现数据删除策略和逐出算法

本文链接: https://lsjlt.com/news/38234.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • redis实现数据删除策略和逐出算法
    这篇文章将为大家详细讲解有关redis实现数据删除策略和逐出算法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数据存储和有效期在 redis 工作流程中,过期的数据并不需...
    99+
    2024-04-02
  • redis 数据删除策略和逐出算法
    数据存储和有效期 在 redis 工作流程中,过期的数据并不需要马上就要执行删除操作。因为这些删不删除只是一种状态表示,可以异步的去处理,在不忙的时候去把这些不紧急的删除操作做了,从而保证 redis 的高效 数据的存储 在re...
    99+
    2016-04-17
    redis 数据删除策略和逐出算法
  • Redis删除策略和逐出策略是什么
    这篇文章主要介绍了Redis删除策略和逐出策略是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。过期数据先来看三个key值,分别为sex、na...
    99+
    2024-04-02
  • Redis删除策略的三种方法及逐出算法
    目录一、前言二、Redis中的数据特征三、时效性数据储存结构四、数据删除策略1、定时删除2、惰性删除3、定期删除五、删除策略对比六、逐出算法1、概念引入2、八种配置一、前言 在文章开...
    99+
    2022-11-13
    Redis删除策略 Redis逐出算法
  • Redis数据过期策略的实现详解
    目录一、设置过期时间1、常用方式2、字符串独有方式二、3种过期策略三、Redis采用的过期策略四、RDB对过期key的处理五、AOF对过期key的处理  本文对Redis的过期机制简...
    99+
    2024-04-02
  • redis定时删除数据如何实现
    在Redis中实现定时删除数据可以通过以下步骤实现: 使用Redis的过期功能:Redis提供了key的过期功能,可以设置key...
    99+
    2024-04-02
  • SpringBoot配置Redis实现保存获取和删除数据
    目录1 Redis2 Maven依赖3 application.propertis4 RedisConfig5 RedisService6 调试代码 7 调试结果...
    99+
    2024-04-02
  • 如何实现Oracle数据库的备份和恢复策略
    要实现Oracle数据库的备份和恢复策略,可以遵循以下步骤: 备份策略: 定期进行完整数据库备份:使用Oracle提供的工具如RM...
    99+
    2024-04-09
    Oracle
  • JavaWeb实现mysql数据库数据的添加和删除
    目录准备操作1. 配置mysql环境2. 创建Servlet Project3. 创建EMS Package4. 分别创建Servlet5. 创建addUser.html6. 配置w...
    99+
    2024-04-02
  • SQLServer 中怎么实现分区增加和删除算法
    本篇文章为大家展示了SQLServer 中怎么实现分区增加和删除算法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先是将一个数据表加入到分区表的方法: [dbo]...
    99+
    2024-04-02
  • JavaWeb如何实现mysql数据库数据的添加和删除
    这篇文章主要为大家展示了“JavaWeb如何实现mysql数据库数据的添加和删除”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaWeb如何实现mysql数据库数据的添加和删除”这篇文章吧。...
    99+
    2023-06-29
  • Java Map揭秘:实现数据快速存取的技巧和策略
    Java Map是一个基于键值对的数据结构,它允许开发人员快速存储和检索数据。Map的键可以是任何对象,而值可以是任何类型的数据。Map中每个键最多只能与一个值相关联,如果对同一个键设置多个值,则只会保留最后设置的值。 Map有两种主要...
    99+
    2024-02-05
    Java Map 键值对 数据结构 优化应用程序 性能技巧 策略
  • 如何在Couchbase中实现数据备份策略和周期性备份
    在Couchbase中实现数据备份策略和周期性备份可以通过以下步骤实现: 使用Couchbase的内置工具:Couchbase提...
    99+
    2024-04-09
    Couchbase
  • 数据库如何实现批量删除数据的操作方法
    这篇文章主要介绍数据库如何实现批量删除数据的操作方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!package com.mescs.baseinfo.utils; import ...
    99+
    2024-04-02
  • 实现LINQ删除数据的巧妙方法是什么
    实现LINQ删除数据的巧妙方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。很多朋友在实现LINQ删除数据的操作的时候经常是先要对数据进行读取操作,然后再进一步考虑删...
    99+
    2023-06-17
  • MariaDB中如何实现数据的插入、修改和删除
    小编给大家分享一下MariaDB中如何实现数据的插入、修改和删除,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!MariaDB数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB...
    99+
    2023-06-27
  • 算法与编程:如何在Python和JavaScript中实现最佳的日志记录策略?
    日志记录是软件开发中必不可少的一部分。它能够帮助开发人员跟踪程序的运行状态,快速排查问题,提高程序的可靠性和稳定性。在本文中,我们将介绍如何在Python和JavaScript中实现最佳的日志记录策略。 一、日志记录的重要性 在软件开发过...
    99+
    2023-08-16
    javascript 日志 编程算法
  • Golang函数的算法和数据结构实现方法
    作为一种相对较新的编程语言,Go语言(也通常称为Golang)已被越来越多的开发者所青睐。Golang的一大特点就是速度快,而这是得益于其高效的并发机制和出色的算法实现。在Golang中,函数是非常重要的概念,成为了程序员高效编写代码的关键...
    99+
    2023-05-17
    算法 Golang 数据结构
  • mysql 大表批量删除大量数据的实现方法
    问题参考自:https://www.zhihu.com/question/440066129/answer/1685329456 ,mysql中,一张表里有3亿数据,未分表,其中一个字段是企业类型,企业类型是一般企业...
    99+
    2022-05-11
    mysql 大表批量删除 mysql 大表批量
  • 如何在MyBatis中实现数据的批量新增和删除
    这期内容当中小编将会给大家带来有关如何在MyBatis中实现数据的批量新增和删除,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。创建UserMapper接口(用户信息Mapper动态代理接口),实现用户信息...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作