redis的性能管理
查看内存使用指标
查看内存使用指标
info memory used_memory:1800800 redis中主句占用的内存
used_memory_rss:5783552 redis向操作系统申请的内存
used_memory_peak:1800800使用内存的峰值
系统巡检:硬件巡检,数据库,nginx redis docker k8s
内存碎片率
used_memory_rss/used_memory系统已经分配给了redis,但是redis未能够有效利用的内存查看内存碎片率 redis-cli info memory | grep ratioallocator_frag_ratio:1.19
分配器碎片的比例,redis住金层调度时产生的内存,比例越小越好,值越高,内存的浪费越多allocator_rss_ratio:7.15
分配器占用物理内存的比例,告诉你主进程调度执行时占用了多少物理内存rss_overhead_ratio:0.31
rss是向系统申请的内存空间,redis占用物理空间额外的开销比例,比例越低越好,redis实际占用物理内存和向系统申请的内存越接近,额外的开销越低mem_fragmentation_ratio:3.33
内存碎片的比例,越低越好,内存的使用率越高
清理内存碎片率
自动清理内存碎片
vim /etc/redis/6379.conf
最后一行添加
activedefrag yes
重启服务手动清理内存碎片
redis-cli memory purge
自动触发清理内存碎片
设置redis的最大内存阀值
vim /etc/redis/6379.conf
567行
maxmemory lgb
一旦到达阀值,自动清理碎片,开启key的回收机制(回收键值对)
key回收的策略
vim /etc/redis/6379.conf
598行
maxmemory-policy volatile-lru
使用redis内置的LRU算法,把已经设置了过期时间的键值对中淘汰数据,移除最近最少使用键值对(针对已经设置了过期时间的键值对)maxmemory-policy volatile-ttl
已经设置了过期时间的键值对,从当中挑选一个即将过期的键值对(针对有设置过期时间的键值对)maxmemory-policy volatile-random
从已经设置了过期时间的键值对当中,挑选数据随机淘汰键值对(对设置了过期时间的键值对进行随机移除)allkeys-lru
LRU算法当中,对所有的键值对进行淘汰,移除最少使用的键值对(针对所有的键值对)allkeys-random
从所有键值对当中任意选择数据进行淘汰maxmemory-policy noeviction
禁止键值对回收(不删除任何键值对,直到redis把内存塞满,写不了,报错)
在工作中,一定要给redis占用内存设置阀值
redis的雪崩
缓存雪崩:大量的应用请求无法在redis缓存当中处理,请求会全部发送到后台数据库,数据库并发能力就很差,一旦高并发,数据库很快崩溃
什么情况导致雪崩?
1、redis集群大面积故障
2、redis缓存中,大量数据同时过期,大量的请求无法得到处理
3、redis实例宕机
解决方案
事前:高可用架构,防止整个缓存故障,主从复制和哨兵模式 redis集群
事中:在国内用的比较多的方式:HySTRIX,熔断,降级,限流 ,用这个三个手段来降低雪崩发生之后的损失(数据库不死即可,慢可以,但是不能没有响应)
事后:redis备份,快速缓存预热
redis的缓存击穿
缓存击穿什么导致的呢?
缓存击穿主要是热点数据缓存过期,或者被删除,多个请求并发热点数据,请求也是转发到数据库了,导致数据库的性能快速下降
解决方法
经常被请求的缓存数据,最好设置为永不过期
键值对还在,但是值被替换了,原有的请求找不到之后,同样也回去请求后台数据库,也是击穿的一种
redis的缓存穿透
缓存中没有数据,数据库也没有对应数据,但是有用户一直发起这个都没有的请求,而且请求的数据格式很大,黑客在利用漏洞攻击,压垮应用数据库
相关文章:
redis的性能管理
查看内存使用指标 查看内存使用指标 info memory used_memory:1800800 redis中主句占用的内存 used_memory_rss:5783552 redis向操作系统申请的内存 used_memory_peak:1800800使用内存的峰值 系统巡检:硬件巡检,数据库,nginx redis docke…...
es各种报错问题及解决方案20231121
报错一 org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception [typesearch_phase_execution_exception, reasonall shards failed]Suppressed: org.elasticsearch.client.ResponseException: method [POST], host [http://localhost:9200], URI [/wzx-te…...
python数据结构与算法-10_递归
递归 Recursion is a process for solving problems by subdividing a larger problem into smaller cases of the problem itself and then solving the smaller, more trivial parts. 递归是计算机科学里出现非常多的一个概念,有时候用递归解决问题看起来非常简单…...
如何设计鞋材出库入账管理系统
如何设计鞋材出库入账管理系统 系统概述系统需求分析系统设计系统实施与测试系统上线与维护 系统概述 本系统旨在设计一个针对鞋材出库入账管理的数字化解决方案,以提高管理效率、降低运营成本并确保材料账目清晰。系统将结合先进的信息化技术,实现对鞋…...
一个简单的QT应用示例
一个简单的QT应用示例:创建一个窗口程序。 首先,确保已经安装了Qt开发环境。接下来,按照以下步骤创建一个简单的窗口程序: 1. 打开Qt Creator,点击“新建文件或项目”。 2. 选择“应用程序”,然后点击“下…...
南京数字孪生赋能工业制造,加速推进制造业数字化转型
随着南京信息技术的迅猛发展和工业管理的不断演进,传统的工业管理方式已经无法满足企业对高效、智能和可持续发展的需求。针对这一情况,数字孪生技术应运而生,为南京工业管理带来了全新的变革和机遇。以数字孪生为理念,三维可视化…...
Visual Studio Code 从英文界面切换中文
1、先安装中文的插件,直接安装。 2、点击右下角的 change language restart, 让软件重启即可以完成了。...
邦芒支招:利用自荐电话求职的七大技巧
如何利用自荐电话向招聘官推荐自己,现在人们在求职过程中都会自己争取面试机会,其中自荐电话是比较常见的一种方式,但是想要向面试官成功推荐自己也是不容易的,下面分享如何利用自荐电话向招聘官推荐自己。 1、以对方为…...
埃尔米特插值(hermite 插值) C++
埃尔米特插值 原理 #pragma once #include <vector> #include <functional> /*埃尔米特插值*/ struct InterpolationPoint {double x; // 插值点的横坐标double y; // 插值点的纵坐标double derivative; // 插值点的导数值// 默认构造函数InterpolationPoint() : x…...
mysql优化之explain 以及 索引优化
Mysql安装文档参考:https://blog.csdn.net/yougoule/article/details/56680952 Explain工具介绍 使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈 在 select 语句之前增加 explain 关键字,MySQL 会在查询上设…...
WebSocket --- ws模块源码解析(详解)
摘要 在这一篇文章中,写了如何在node端和web端,实现一个WebSocket通信。 WebSocket在node端和客户端的使用 而在node端里面,我们使用了ws模块来创建WebSocket和WebSocketServer,那ws模块是如何做到可以和客户端进行双向通信的呢…...
一文带你拿下MySQL之增删查改(基础)
✏️✏️✏️今天给各位带来的是关于数据库增删查改基础方面的知识。 清风的CSDN博客 😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流! 动动你们发财的小手…...
2023亿发数字化智能工单,专业管理工单处理全流程,助力企业转型腾飞
伴随着智能化和信息化的不断深入,企业数字化转型势如腾飞。在这个过程中,工单管理成为生产、家电、后勤等多个管理场景下频繁应用的关键环节。如何满足管理方对设备、服务等智能化管理的需求,提升工单管理效率、规范管理流程,并实…...
JavaScript 常用符号
JavaScript是一门基础性的编程语言,常用于web开发中。JS中有许多特殊的符号,这些符号的用法十分重要,直接影响代码的正确性和可读性。在日常编写中,我们会频繁使用以下几个符号。 一、等于号() 等于号在JS…...
GPT-4:论文阅读笔记
GPT-4的输入和输出:输入的内容是文本或图片,输出的内容是文本。因此,GPT-4是一种输入端多模态的模型。GPT-4的效果:在真实世界中还是比不上人类,但是在很多专业性的任务上已经达到了人类的水平,甚至超过人类…...
hm商城微服务远程调用及拆分
RequiredArgsConstructor是Lombok库中的一个注解 它会自动在类中生成一个构造函数,这个构造函数会接收类中所有被标记为final的字段,并将其作为参数。这个注解可以帮助我们减少样板代码,例如手动编写构造函数。 eg: public fin…...
设置指定时间之前的时间不可选
1、el-date-picker设置今天之前的日期不可选 <el-date-picker style"width: 100%" type"date" v-model"form.resetDate" align"right" :value-format"yyyy-MM-dd" placeholder"选择调整日期":disabled"t…...
Java使用Redis来实现分布式锁
Java使用Redis来实现分布式锁 在单节点服务中,我们可以使用synchronized来保证同一时间内只允许一个线程执行限定的代码块。但是如果我们是多节点服务呢,因为synchronized是针对服务内部的,其他服务是无法受到他的干预的。那么如何保证多个节…...
移动端表格分页uni-app
使用uni-app提供的uni-table表格 网址:https://uniapp.dcloud.net.cn/component/uniui/uni-table.html#%E4%BB%8B%E7%BB%8D <uni-table ref"table" :loading"loading" border stripe type"selection" emptyText"暂无更多数据…...
全志R128芯片RTOS调试指南
RTOS 调试指南 此文档介绍 FreeRTOS 系统方案支持的常用软件调试方法,帮助相关开发人员快速高效地进行软件调试,提高解决软件问题的效率。 栈回溯 栈回溯是指获取程序的调用链信息,通过栈回溯信息,能帮助开发者快速理清程序执行…...
Python 爬虫进阶技巧:动态调整请求频率规避 IP 封禁
前言 网络爬虫规模化采集过程中,高频无节制的批量请求是触发站点反爬机制、导致 IP 封禁、访问受限、请求拦截的核心诱因。多数互联网服务提供商与站点服务器均配置了完善的流量监控、访问频率检测、异常请求识别策略,短时间内高密度的 HTTP 请求会被判…...
汇川AM600 Modbus通信配置保姆级教程:从硬件端口到变量映射,一次搞定
汇川AM600 Modbus通信全流程实战指南:从硬件连接到数据交互 第一次拿到汇川AM600系列PLC时,面对琳琅满目的接口和复杂的软件配置界面,不少工程师都会感到无从下手。特别是在需要与第三方设备进行Modbus通信时,一个参数配置错误就可…...
2025年实时影响因子: 全球期刊(26.5.2更新)
点击蓝字 关注我们2025年实时影响因子: 全球期刊近日,我们通过Web of Science 官网数据库,对全球期刊开展系统性分析。本次重点筛选2025年影响因子 (IF) 排名靠前的100本核心期刊,涵盖54本研究类期刊与46本综述期刊两大类别。在研究类期刊中&…...
ComfyUI Manager:3步打造你的AI绘画插件生态圈
ComfyUI Manager:3步打造你的AI绘画插件生态圈 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom nodes…...
LORE:为AI编码助手注入架构记忆,提升大型TypeScript项目可维护性
1. 项目概述:为AI编码助手注入“架构记忆”在过去的几年里,AI编码助手(如Claude、Cursor、Windsurf)已经从一个新奇玩具变成了我们日常开发工作流中不可或缺的一部分。它们能快速生成代码片段、重构函数、甚至编写单元测试&#x…...
如何快速解决细胞图像分割难题:Cellpose完整指南
如何快速解决细胞图像分割难题:Cellpose完整指南 【免费下载链接】cellpose a generalist algorithm for cellular segmentation with human-in-the-loop capabilities 项目地址: https://gitcode.com/gh_mirrors/ce/cellpose Cellpose是一款基于深度学习的开…...
缠论X:通达信用户的智能技术分析助手
缠论X:通达信用户的智能技术分析助手 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 你有没有经历过这样的场景?面对密密麻麻的K线图,想要运用缠论进行分析,…...
交互式代码重构工具refrag:平衡自动化与人工判断的智能辅助实践
1. 项目概述:一个用于代码重构的智能辅助工具最近在和一些资深开发朋友交流时,大家普遍提到一个痛点:面对遗留代码库,重构工作既重要又令人头疼。手动重构耗时费力,还容易引入新Bug;而完全依赖自动化工具&a…...
UDS诊断协议深度剖析:0x31例程控制服务|全网最细报文拆解 + 量产级代码实现 + 车载实战案例|覆盖ISO 14229-1全场景,适配STM32/AURIX多MCU,解决量产高频故障
目录 一、0x31例程控制服务核心定义(ISO 14229-1:2020标准) 1.1 服务核心作用 1.2 服务核心特性(区别于其他UDS服务) 1.3 服务核心术语(量产开发必懂) 二、0x31服务报文字节级拆解(全网最细,含标准+自定义扩展) 2.1 基础格式约定(ISO 14229-1标准) 2.2 请求报…...
机器学习实战问答库:从理论到工程的避坑指南与解决方案
1. 项目概述:一个机器学习问答库的诞生与价值几年前,当我刚开始系统性地学习机器学习时,面对海量的教程、论文和开源项目,一个最直接的困惑是:这些知识在实际项目中到底怎么用?遇到一个具体的报错ÿ…...
