Redis——Redis的数据库结构、删除策略及淘汰策略
Redis是一个高性能的key-value存储系统,它支持多种数据结构,并提供了丰富的删除策略和淘汰策略。以下是关于Redis的数据库结构、删除策略及淘汰策略的详细介绍:
Redis的数据库结构
Redis是一个key-value数据库,数据存储是以一个唯一的key对应一个value。value有5种基础数据结构:
- string(字符串):值可以是字符串(简单的、以及json、xml格式的)、数字,甚至是二进制数据(图片、音频、视频),最大能存储512MB。
- hash(哈希):一个键值对集合。
- list(列表):一个字符串列表,按照插入顺序排序。
- set(集合):一个字符串集合,不允许有重复元素。
- zset(有序集合):一个字符串集合,每个元素都会关联一个double类型的分数。Redis正是通过分数来为集合中的成员进行从小到大的排序。
Redis的删除策略
Redis有三种删除策略来处理过期数据:
- 定时删除:创建一个定时器,当key过期时,定时器立即删除过期数据。这种方法节约内存,但CPU负荷高,尤其在访问量大时可能引起线程阻塞。
- 惰性删除:数据到达过期时间,不做处理。等下次访问该数据时,如果未过期,返回数据;如果已过期,删除并返回不存在。这种方法CPU压力会降低,但内存压力很大,长期有过期数据占用内存。
- 定期删除:Redis启动服务器初始化时,读取配置server.hz的值(默认为10),每秒执行server.hz次的serverCron()中的方法,周期性地轮询redis库中的时效型数据,采用随机抽取的策略,利用过期数据占比的方式控制删除频度(过期数据的比例不超过25%)。这种策略平衡了前两种极端的方案,CPU性能占用设置有峰值,检测频度可自定义,内存压力和CPU压力都不大。
Redis的淘汰策略
当Redis内存不足以容纳新写入数据时,就需要制定一定的淘汰策略。Redis提供了以下几种淘汰策略:
- noeviction:不淘汰任何数据,如果内存已经满了,不支持客户端写入新的数据,会直接发出拒绝,返回错误。
- volatile-lru:最常用的淘汰策略,该策略是淘汰掉设置了过期时间的键,并按照最少访问频次进行淘汰。
- volatile-lfu:针对设置了过期时间的key,按照一段时间内的访问频次,淘汰掉访问频次最低的进行淘汰。
- volatile-ttl:该策略是淘汰掉针对设置了过期时间的键,按照生存时间最短的进行淘汰。
- volatile-random:针对设置了过期时间的键,随机选择一个键淘汰。
- allkeys-lru:淘汰整个键值对中最久未使用的键值对。
- allkeys-lfu:淘汰整个键值对中一段时间最少使用的键值对。
- allkeys-random:随机淘汰任意键值对。
这些策略可以根据实际应用场景和需求进行选择和配置。
相关文章:
Redis——Redis的数据库结构、删除策略及淘汰策略
Redis是一个高性能的key-value存储系统,它支持多种数据结构,并提供了丰富的删除策略和淘汰策略。以下是关于Redis的数据库结构、删除策略及淘汰策略的详细介绍: Redis的数据库结构 Redis是一个key-value数据库,数据存储是以一个…...
【Vue3笔记03】Vue3项目工程中使用vue-router路由
这篇文章,主要介绍Vue3项目工程中如何使用vue-router路由。 目录 一、vue-router路由 1.1、下载vue-router路由 1.2、创建router.js文件 1.3、main.js配置路由...

并行执行的4种类别——《OceanBase 并行执行》系列 4
OceanBase 支持多种类型语句的并行执行。在本篇博客中,我们将根据并行执行的不同类别,分别详细阐述:并行查询、并行数据操作语言(DML)、并行数据定义语言(DDL)以及并行 LOAD DATA 。 《并行执行…...
函数练习.
1.打印乘法口诀表 口诀表的行数和列数自己指定如:输入9,输出99口诀表,输出12,输出1212的乘法口诀表。 multiplication(int index) { if (index 9) { int i 0; for (i 1; i < 10; i) { int j 0; for (j 1; j &…...

Git 分支命令操作详解
目录 1、分支的特点 2、分支常用操作 3、分支的使用 3.1、查看分支 3.2、创建分支 3.3、修改分支 3.4、切换分支 3.5、合并分支 3.6、产生冲突 3.7、解决冲突 3.8、创建分支和切换分支说明 1、分支的特点 同时并行推进多个功能开发,提高开发效率。各个分…...

十二生肖Midjourney绘画大挑战:释放你的创意火花
随着AI艺术逐渐进入大众视野,使用Midjourney绘制十二生肖不仅能够激发我们的想象力,还能让我们与传统文化进行一场新式的对话。在这里,我们会逐一提供给你创意满满的绘画提示词,让你的作品别具一格。而且,我们还精选了…...

【C++】priority_queues(优先级队列)和反向迭代器适配器的实现
目录 一、 priority_queue1.priority_queue的介绍2.priority_queue的使用2.1、接口使用说明2.2、优先级队列的使用样例 3.priority_queue的底层实现3.1、库里面关于priority_queue的定义3.2、仿函数1.什么是仿函数?2.仿函数样例 3.3、实现优先级队列1. 1.0版本的实现…...
Go语言函数
在Go语言中,函数是一种基本的构建块,用于组织代码并执行特定任务。它们是可重复使用的代码段,可以接收输入参数,执行一系列操作,并可返回结果。以下是Go语言中函数的详细介绍及其使用方法: 基本语法 Go语…...
如何使用EasyExcel导入百万数据
摘要: 本文将详细探讨如何利用EasyExcel库,以及结合Java编程,高效地导入大规模数据至应用程序中。我们将逐步介绍导入流程、代码实现细节,并提供性能优化建议,旨在帮助读者在处理百万级别数据时,提高效率与…...

【解决】Unity Build 应用程序运行即崩溃问题
开发平台:Unity 2021.3.7f1c1 一、问题描述 编辑器 Build 工程结束,但控制台 未显示 Build completed with a result of Succeeded [时间长度] 信息。该情况下打包流程正常,但应用程序包打开即崩溃。 二、问题测试记录 测试1…...

C++数据结构——红黑树
前言:本篇文章我们继续来分享C中的另一个复杂数据结构——红黑树。 目录 一.红黑树概念 二.红黑树性质 三.红黑树实现 1.基本框架 2.插入 3.判断平衡 四.完整代码 总结 一.红黑树概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个…...
Java并发编程:学习路线图
文章目录 一、操作系统内核原理1、进程管理详解2、内存管理详解3、IO输入输出系统详解4、进程间通信机制详解5、网络通信原理剖析 二、Java内存模型三、并发集合1、Map(1)ConcurrentHashMap(2)ConcurrentSkipListMap 2、List&…...

算法_前缀和
DP34 【模板】前缀和 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别int n in.nextInt(),q in.ne…...

C语言(指针)7
Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,关注收藏,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记&#x…...

线程纵横:C++并发编程的深度解析与实践
hello !大家好呀! 欢迎大家来到我的Linux高性能服务器编程系列之《线程纵横:C并发编程的深度解析与实践》,在这篇文章中,你将会学习到C新特性,并发编程,以及其如何带来的高性能的魅力࿰…...

在阿里云服务器上安装MySQL
目录 一、先卸载不需要的环境 1.关闭MySQL服务 2.查看安装包以及卸载安装包 3.依次卸载所有包 4. 获取mysql官⽅yum源 二、安装(密钥过期解决方法) 三、启动并进入 关于MySQL MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS&…...

国标GB28181协议EasyCVR视频汇聚平台获取设备录像仅展示部分片段的原因排查
国标GB28181协议EasyCVR安防平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力,平台支持7*24小时实时高清视频监控,能同时播放多路监控视频流…...

Java的类和对象(一)—— 初始类和对象,this关键字,构造方法
前言 从这篇文章开始,我们就进入到了JavaSE的核心部分。这篇文章是Java类和对象的第一篇,主要介绍类和对象的概念,this关键字以及构造方法~~ 什么是类?什么是对象? 学过C语言的老铁们,可以类比struct自定义…...
富格林:曝光虚假套路规避亏损
富格林指出,在现货黄金市场中,交易时间很充足投资机会也多的是,但为什么还是有人亏损甚至爆仓呢?其实导致这种情况,是因为有一些投资者不知道其中的虚假套路,很容易就一头栽进去了。要规避虚假套路带来的亏…...
数据源网站分享
1. 国家统计局: http://www.stats.gov.cn/提供国家宏观经济数据 2. 工业和信息化部: http://www.miit.gov.cn 发布工业运行及信息化相关数据 3. 中国人民银行: http://www.pbc.gov.cn/ 提供金融市场政策及运行相关数据 4. 国家金融监督…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...

力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...
跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践
在电商行业蓬勃发展的当下,多平台运营已成为众多商家的必然选择。然而,不同电商平台在商品数据接口方面存在差异,导致商家在跨平台运营时面临诸多挑战,如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...