网站升级建设方案/国际新闻直播

网站升级建设方案,国际新闻直播,wordpress支付按钮,霸州放心的网络建站Redis最主要的用途,分为三个方面: 1.存储数据(内存数据库) 2.缓存(最常用) 3.消息队列 缓存 (cache) 是计算机中的⼀个经典的概念。核⼼思路就是把⼀些常⽤的数据放到触⼿可及(访问速度更快)的地⽅&…

Redis最主要的用途,分为三个方面:

1.存储数据(内存数据库)

2.缓存(最常用)

3.消息队列

缓存 (cache) 是计算机中的⼀个经典的概念。核⼼思路就是把⼀些常⽤的数据放到触⼿可及(访问速度更快)的地⽅,方便随时读取。

使用redis作为缓存

通常是使用redis作为数据库的缓存(mysql),mysql这样的关系型数据库的速度比较慢,就可以使用redis作为mysql的缓存。

如果访问数据库的并发量⽐较⾼, 对于数据库的压⼒是很⼤的, 很容易就会使数据库服务器宕机。

为什么并发量⾼了就会宕机?

服务器每次处理一个请求,一定要消耗一些硬件资源(cpu,内存,硬盘,网络),任意一种资源的消耗超出了机器能提供的上限,机器就很容易故障了。

如何提高mysql能承担的并发量?

1.开源:引入更多的机器,构成数据库集群。

2.节流:引入缓存。把一些频繁读取的热点数据,保存到缓存上。后续在查询数据的时候,如果缓存中已经存在了,就不再访问mysql了。

Redis 访问速度⽐ MySQL 快很多。或者说处理同⼀个访问请求, Redis 消耗的系统资源⽐
MySQL 少很多. 因此 Redis 能⽀持的并发量更⼤.

缓存更新策略

如何知道redis中应该存储哪些数据呢?这就涉及到redis缓存的更新策略。

定期生成

会把访问的数据,以日志的形式记录下来。

每隔⼀定的周期(⽐如⼀天/⼀周/⼀个⽉), 对于访问的数据频次进⾏统计。挑选出访问频次最⾼的前 N%的数据。

搜索引擎为例,可以写一套离线的流程,通过定时任务来触发:

a) 完成统计热词的过程。

b)根据热词,找到搜索结果数据(广告数据)

c)把得到缓存数据同步到缓存服务器上

d)控制这些缓存服务器自动重启

优点:实现起来比较简单,过程更可控,方便排查问题。

缺点:实时性不够,如果出现一些突发性事件,有一些本来不是热词的内容,成了热词。新的热词就可能给后面的数据库带来较大的压力。(⽐如春节期间, "春晚" 这样的词就会成为⾮常⾼频的词. ⽽平时则很少会有⼈搜索 "春晚".)

实时生成

实时生成的流程:

• 如果在 Redis 查到了, 就直接返回.
• 如果 Redis 中不存在, 就从数据库查,把查到的结果同时也写⼊ Redis。

可这样不停的写redis,就会使redis的内存占用越来越多。会逐渐达到内存上限。

此时如果继续往里插入数据,就会触发问题。为了解决上述情况,redis就引入了“内存淘汰策略”。

主要有以下几种:

Redis 也提供了内置的淘汰策略, 也可以供我们直接使⽤:

整体来说 Redis 提供的策略和我们上述介绍的通⽤策略是基本⼀致的。只不过 Redis 这⾥会针对 "过期key" 和 "全部 key" 做分别处理。

缓存使用注意事项

缓存预热

缓存中的数据,定期生成不涉及“预热”。

在实时生成时,redis服务器首次接入之后,服务器里时没有数据的。客户端先查询redis,如果没查到,就再查一次mysql,查到了之后,会把数据也写到redis中。

此时,所有的请求都会打给mysql,随着时间的推移,redis上的数据越积累越多,mysql承担的压力就逐渐减小了。

缓存预热,就是用来解决上述问题的。

定期生成和实时生成,结合一下。即先通过离线的方式,通过一些统计的途径,先把热点数据找到一批,导入到redis中。此时导入的热点数据,就能帮mysql承担很大的压力了。随着时间的推移,逐渐就使用新的热点数据淘汰掉旧的数据。

缓存穿透

查询到的某个key,在redis中没有,mysql中也没有。这个key肯定也不会被更新到redis中。如果像这样的数据存在很多,并且还反复查询,一样也会给mysql带来很大的压力。这种情况称为 缓存穿透。

为何会产生这样的现象?

如何解决这种现象?

1)如果发现这个key,在redis和mysql上都不存在,仍然写入redis中,value设置成一个非法值(比如"")

2)引入布隆过滤器,每次查询redis/mysql之前都判定一下key是否在布隆过滤器上存在。(把所有的key都插入到布隆过滤器中)

布隆过滤器:本质上是结合了hash+bitmap,以比较小的空间开销,比较快的时间速度,实现针对key是否存在的判定。

缓存雪崩

由于在短时间内,redis上大规模的key失效,导致缓存命中率陡然下降,并且mysql的压力迅速上升,甚至直接宕机。

为何产生?

1)redis直接挂了。redis宕机/redis集群模式下大量节点宕机。

2)redis没问题,但是可能之前短时间内设置了很多key给redis,并且设置的过期时间是相同的。(给redis里设置key作为缓存的时候,有时为了考虑缓存的时效性,就会设置过期时间)

如何解决?

1)加强监控报警,加强redis集群可用性的保证。

2)不给key设置过期时间/设置过期时间的时候添加随机的因子(避免同一时刻过期)

缓存击穿

相当于缓存雪崩的特殊情况。针对热点 key , 突然过期了, 导致⼤量的请求直接访问到数据库上, 甚⾄引起数据库宕机。热点key访问的频率高,比缓存雪崩影响更大。

如何解决?

1)基于统计的⽅式发现热点 key, 并设置永不过期。往往需要服务器结构做出较大的调整。

2)进行必要的服务降级,在特定的情况下适当的关闭一些不重要的功能,只保留核心功能。例如访问数据库的时候使用分布式锁,限制同时请求数据库的并发数。

以上,关于redis的缓存,希望对你有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/74123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本地基于Ollama部署的DeepSeek详细接口文档说明

前文,我们已经在本地基于Ollama部署好了DeepSeek大模型,并且已经告知过如何查看本地的API。为了避免网络安全问题,我们希望已经在本地调优的模型,能够嵌入到在本地的其他应用程序中,发挥本地DeepSeek的作用。因此需要知…

基于ArcGIS和ETOPO-2022 DEM数据分层绘制全球海陆分布

第〇部分 前言 一幅带有地理空间参考、且包含海陆分布的DEM图像在研究区的绘制中非常常见,本文将实现以下图像的绘制 关键步骤: (1)NOAA-NCEI官方下载最新的ETOPO-2022 DEM数据 (2)在ArcGIS(…

Retrofit中scalars转换html为字符串

简介 在Retrofit中,如果你想直接获取HTML或其他文本格式的响应内容而不是将其映射到一个模型类,ScalarsConverterFactory 就派上用场了。ScalarsConverterFactory 是一个转换器工厂,它能够将响应体转换为Java基本类型如String、Integer或Byte…

Powershell WSL Windows系统复制数据到ubuntu子系统系统

从本地D盘下拷贝数据到ubuntu子系统下 Powershell 管理员打开执行 /mnt/d 此处是本地Windows系统的路径表示/opt ubutu 子系统目录 wsl -d Ubuntu-22.04 -u root -- bash -c cp -rf /mnt/d/nginx.conf /opt/从ubuntu子系统中拷贝数据到本地D盘下 Powershell 管理员打开执行…

【多线程】线程安全集合类,ConcurrentHashMap实现原理

文章目录 线程安全集合类解决方案多线程环境使用顺序表多线程环境使用队列多线程环境使用哈希表ConcurrentHashMap1. 缩小锁的粒度2. 充分使用 CAS3. 针对扩容操作 线程安全集合类 ArrayList、Queue、HsahMap… 都是线程不安全的 Vector、Stack、Hashtable 都是线程安全的&am…

spring-tx笔记

编程式事务与声明式事务的理解 补充:什么是事务? 事务是一个重要概念,尤其在数据库管理系统中。事务是指一组操作。,这些操作要么全部成功执行,要么全部不执行,确保数据的一致性和完整性 编程式事务 编…

Java-SpringBootWeb入门、Spring官方脚手架连接不上解决方法

一. Spring 官网:Spring | Home Spring发展到今天已经形成了一种开发生态圈,Spring提供了若干个子项目,每个项目用于完成特定的功能(Spring全家桶) Spring Boot可以帮助我们非常快速的构建应用程序、简化开发、提高效率 。 二. Spring Boot入…

1.7 无穷小的比较

1.定义 2.性质 3.无穷小的比较 3.1等价无穷小的性质 3.2 常见等价无穷小

StarRocks 升级注意事项

前段时间升级了生产环境的 StarRocks,从 3.3.3 升级到了 3.3.9,期间还是踩了不少坑所以在这里记录下。 因为我们的集群使用的是存算分离的版本,也是使用官方提供的 operator 部署在 kubernetes 里的,所以没法按照官方的流程进入虚…

深入探究 JVM 堆的垃圾回收机制(一)— 判活

垃圾回收分为两步:1)判定对象是否存活。2)将“消亡”的对象进行内存回收。 1 判定对象存活 可达性分析算法:通过一系列“GC Roots”对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,…

国产开发板—米尔全志T113-i如何实现ARM+RISC-V+DSP协同计算?

近年来,随着半导体产业的快速发展和技术的不断迭代,物联网设备种类繁多(如智能家居、工业传感器),对算力、功耗、实时性要求差异大,单一架构无法满足所有需求。因此米尔推出MYD-YT113i开发板(基…

Tomcat虚拟主机配置详解:Centos环境下多域名部署(详细教程!)

🏡作者主页:点击! Tomcat服务器📝专栏:点击! 🐧Linux高级管理防护和群集专栏:点击! ⏰️创作时间:2025年3月18日14点14分 最近在折腾 Tomcat 的时候&…

dfs刷题排列问题 + 子集问题 + 组和问题总结

文章目录 一、排列问题全排列II题解代码 优美的排列题解代码 二、子集问题字母大小写全排列题解代码 找出所有子集的异或总和再求和题解代码 三、组合问题电话号码的字母组合题解代码 括号生成题解代码 组合题解代码 目标和题解代码 组合总和题解代码 总结 一、排列问题 全排列…

【Linux】VMware17 安装 Ubuntu24.04 虚拟机

目录 安装教程 一、下载 Ubuntu 桌面版iso映像 二、安装 VMware 三、安装 Ubuntu 桌面版 VMware 创建虚拟机 挂载 Ubuntu ISO 安装 Ubuntu 系统 安装教程 一、下载 Ubuntu 桌面版iso映像 链接来自 清华大学开源软件镜像站 ISO文件地址:ubuntu-24.04.2-des…

CVPR2025 | 对抗样本智能安全方向论文汇总 | 持续更新中~

汇总结果来源:CVPR 2025 Accepted Papers 若文中出现的 论文链接 和 GitHub链接 点不开,则说明还未公布,在公布后笔者会及时添加. 若笔者未及时添加,欢迎读者告知. 文章根据题目关键词搜索,可能会有遗漏. 若笔者出现…

PostgreSQL_数据回退,数据库导出、导入

目录 前置: 1 数据回退 1.1 代码 1.2 pgAdmin4 中查看 1)t_daily 2) t_stock_daily 2 数据库导出、导入 前置: 本博文是一个系列。在本人“数据库专栏”-》“PostgreSQL_”开头的博文。 1 数据回退 上一节“PostgreSQL_数据下载并…

golang单机锁实现

1、锁的概念引入 首先,为什么需要锁? 在并发编程中,多个线程或进程可能同时访问和修改同一个共享资源(例如变量、数据结构、文件)等,若不引入合适的同步机制,会引发以下问题: 数据竞…

【HarmonyOS Next】鸿蒙应用实现弹框DialogHub详解

【HarmonyOS Next】鸿蒙应用实现弹框DialogHub详解 一、前言 鸿蒙中实现弹框目前官方提供openCustomDialog和CustomDialog两种模式。推荐前者,详情见下图和官网文档链接: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V14/arkts-u…

机器学习算法实战——天气数据分析(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​ 1. 引言 天气数据分析是气象学和数据科学交叉领域的一个重要研究方向。随着大数据技术的发展,气象数据的采集、存储和分…

炫酷的3D按钮效果实现 - CSS3高级特性应用

炫酷的3D按钮效果实现 - CSS3高级特性应用 这里写目录标题 炫酷的3D按钮效果实现 - CSS3高级特性应用项目介绍核心技术实现1. 基础结构设计2. 视觉效果实现2.1 背景渐变2.2 立体感营造 3. 交互动效设计3.1 悬停效果3.2 按压效果 技术要点分析1. 深度层次感2. 动画过渡3. 性能优…