IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis之数据删除策略与淘汰策略 -> 正文阅读

[大数据]Redis之数据删除策略与淘汰策略

数据删除与淘汰策略

1、过期数据概念与存储结构

  • 内存中数据的状态
    • 通过TTL指令获取
    • XX:具有时效性的数据
    • -1:永久有效的数据
    • -2:已经过期的数据或被删除的数据或未定义的数据

注:过期的数据不一定被删除了

  • 时效性数据的存储结构

    在redis存储空间中,有一个expires区域,将数据的地址作为field,将数据的过期时间作为value

    在这里插入图片描述

  • 数据删除策略

    • 定时删除
    • 惰性删除
    • 定期删除

注:数据删除策略的目标并不是真正的删除数据,而是在内存占用和cup占用之间寻找一种平衡

2、定时删除与惰性删除

  • 定时删除

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

优点:节约内存

缺点:cpu压力大

  • 惰性删除

    数据到达过期时间后,不立即删除.等下次访问该数据时,再删除.

优点:节约cpu性能

缺点:内存压力大

3、定期删除

  • redis存储空间

    在这里插入图片描述

  • 定期删除过程解释

    redis会顺序的对16个expires进行检测。对某个expires检测时,随机挑选w个key检测是否超时。如果超时,删除key。如果一轮中删除的**key的数量>w乘以25%,循环该过程。如果一轮中删除的key的数量<**w*25%,检测下一个expires。

  • 定期删除原理

    在这里插入图片描述

    在这里插入图片描述

    • server.hz的值,确定每次检测多久。
    • durrent_db:记录执行到了哪个expires位置
  • 删除策略对比

    在这里插入图片描述

4、淘汰策略

  • 使用淘汰策略场景

新数据进入redis时,内存空间不足

  • 怎么判断内存空间剩余大小呢?

    redis在执行每个命令前,会调用freeMemoryIfNeeded()检测内存空间是否充足。

  • 逐出算法

    清理数据的策略。该过程并不是100%能清理出足够可用的内存空间,如果不成功,则反复执行。如果全部数据都尝试完毕,则会返回错误信息。

    在这里插入图片描述

  • 那么,如何确定该删除哪些数据呢?

    通过配置:maxmemory-policy XXX

    XXX可选:

    • volatile-lru:淘汰最久没有访问的数据
    • volatile-lfu:淘汰最少访问的数据
    • volatile-ttl:淘汰将要过期的数据
    • volatile-random:任意选择淘汰

注:这是expires里面的淘汰策略

检索全库数据:在这里插入图片描述

放弃数据驱逐(淘汰)配置:no-enviction

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-25 08:11:03  更:2021-11-25 08:11:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:56:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码