Redis实践记录与总结
最近生产环境缓存数据库数据过大(如何搭建单服务redis缓存数据库?以及可视化工具Another Redis Desktop Manager使用),导致在对数据库做rdb快照备份时消耗内存过大,缓存数据库宕机一小时。基础运维通过增加虚拟机内存暂时解决问题,但随着垃圾数据的持续增长,终有一刻内存资源会耗尽,宕机问题重现。现在产品经理要求对缓存数据库进行降容。我针对这个问题提出了四个解决方案,最后一个方案解决问题。
首先使用redis rdb tools 工具(redis rdb tools工具如何搭建?)对当前快照文件redis.rdb 进行分析,将缓存数据库中无用数据清除掉。在使用工具命令进行处理时报错:
Invalid RDB version number 10 //提示目标rdb文件版本过高,无法进行分析
上述报错的原因是:当前缓存使用的7版本,而7版本目前redis rdb tools对高版本的rdb文件分析的功能还没有上线,也就是说当前功能不兼容。
紧接着上第二个方案,使用redis数据备份工具redis-dump将缓存数据备份成json文件,再将该json文件中的数据迁移到低版本redis数据库中,对低版本进行rdb文件备份,使用redis rdb tools工具进行分析。(redis-dump 工具安装与使用)生产环境64G的数据,在对测试环境6G(远小于64G)数据的缓存进行备份时访问出现connect time out 连接超时问题。最终调查结果是缓存数据过大,该工具不适用大数据量缓存。如果换成小数据量的缓存数据库该方案是可行的。
接着使用第三个方案:新建主从复制服务器(如何搭建主从复制服务器?),将缓存数据同步到低版本redis(3.0)缓存数据库中。同样报错:
Invalid RDB version number 10 //提示目标rdb文件版本过高,无法进行分析
最后一个方案采用rdb与aof混合备份数据库的方式,来避免宕机问题。(如何搭建redis缓存混合持久化方案?)单独采用rdb快照容易丢失本地到下一次快照之间写入的数据。单独使用aof日志在系统启动时加载数据效率低。混合使用rdb与aof可以兼并两者的优点,互相补充短板。
Redis缓存数据库设计建议:缓存中的数据不要设置永久性数据,可以定时往数据库中同步数据。这样的好处有:1. 所有的数据都会过期并释放内存,不会产生未知垃圾。2. 定时同步可以保证数据新鲜,准确。
相关文章:
Redis实践记录与总结
最近生产环境缓存数据库数据过大(如何搭建单服务redis缓存数据库?以及可视化工具Another Redis Desktop Manager使用),导致在对数据库做rdb快照备份时消耗内存过大,缓存数据库宕机一小时。基础运维通过增加虚拟机内存暂…...
持续总结中!2024年面试必问 20 道 Rocket MQ面试题(三)
上一篇地址:持续总结中!2024年面试必问 20 道 Rocket MQ面试题(二)-CSDN博客 五、什么是生产者(Producer)和消费者(Consumer)在RocketMQ中? RocketMQ是一个高性能、高吞…...
Android 自定义Adapter关键函数getView性能最优使用
文章目录 1、自定义Adapter关键函数getView()标准写法2、布局文件list_item_user.xml3、解释3、示例使用4、结果5、进一步优化和扩展5.1. **优化性能:ViewHolder模式**5.2. **处理多种类型的视图**5.3. **使用RecyclerView.Adapter** 6、RecyclerView使用示例7、结果…...
Linux服务上MySQL的启动、重启和关闭
Linux服务上MySQL的启动、重启和关闭 MySQL是一种广泛使用的开源关系型数据库管理系统,常用于各种规模的应用程序中。在Linux服务器上管理MySQL服务是一个基本的运维任务。本文将详细介绍如何在Linux系统上启动、重启和关闭MySQL服务,涵盖不同Linux发行…...
ctfshow web入门 嵌入式 bash cpp pwn
kali转bash shell方法 方便我们本地 bash脚本教程 下面这个代码是bash脚本 #!/bin/bashOIFS"$IFS"IFS"," //表示逗号为字段分隔符set $QUERY_STRING //将参数传入数组Args($QUERY_STRING)IFS"$OIFS" //恢复原始IFS值if [ "$…...
【ONE·Git || 基本用法入门】
总言 主要内容:主要介绍Git中常用的指令。 PS:多人协作与企业开发模型使用,此部分内容不作博文总结。 文章目录 总言1、初识Git1.1、版本控制器1.2、git安装 2、基本操作2.1、Git本地仓库2.1.1、创建Git本地仓库&…...
【运维项目经历|021】Spark大数据分析平台建设项目
目录 项目名称 项目背景 项目目标 项目成果 我的角色与职责 我主要完成的工作内容 本次项目涉及的技术 本次项目遇到的问题与解决方法 本次项目中可能被面试官问到的问题 问题1:项目周期多久? 问题2:服务器部署架构方式及数量和配置…...
装机数台,依旧还会心念i5-12600KF的性能和性价比优势:
近几个月的时间中, 装机差不多4台电脑,由于工作需要,计划年中再增添一台。 目前市场上英特尔CPU促销非常火爆,第12代、第13代以及第14代的产品在年中有适当的优惠。 年中也是装机的旺季,各种相关配件也相对便宜一些。…...
Docker-----emqx部署
emqx通过Docker容器化部署流程 1.创建持久化挂载目录 mkdir -p /home/emqx/etc ------挂载emqx的配置文件目录 mkdir -p /home/emqx/data ------挂载emqx的存储目录 mkdir -p /home/emqx/log ------挂载emqx的日志目录 [root home]# mkdir -p /home/emqx/etc [root home]# mkd…...
三数之和-力扣
这道题在使用哈希表来做时,做的很吃力,对重复的去除很费劲。 首先是对i的去重,不能使用nums[i] nums[i] 这样的条件去判断,这会遗漏掉类似[-1, -1 , 2]这样的解其次是对j的去重, 对j的去重是为了防止类似[-4, 2, 2, …...
2024 五月份国内外CTF 散装re 部分wp
cr3CTF warmup 附件拖入ida main函数无法反汇编,仔细看,有花指令,jnz实际上必定跳转。有非常多处,可以写脚本patch程序去掉花指令,只要匹配指令,再获取跳转地址,nop掉中间的代码就行。但…...
[猫头虎分享21天微信小程序基础入门教程]第21天:小程序的社交分享与消息推送
[猫头虎分享21天微信小程序基础入门教程]第21天:小程序的社交分享与消息推送 第21天:小程序的社交分享与消息推送 📲 自我介绍 大家好,我是猫头虎,一名全栈软件工程师。今天我们继续微信小程序的学习,重…...
aop整理
一、aop基础知识 Spring AOP 详细深入讲解代码示例 二、spring/spring boot/spring cloud中出现的注解/类与概念的对应 Aspect: 标注当前MyAspect是一个切面类,–》对应切面的概念,在切面类中有用Before等注解修饰的方法作为advice,也有用…...
Sublime Text 基础教程(个人总结)
Sublime Text 是一款广受欢迎的代码编辑器,以其简洁的界面和强大的功能而著称。它支持多种编程语言,具有高效的代码编辑和管理功能。本教程将详细介绍如何使用 Sublime Text,从安装到高级使用技巧,帮助你充分利用这款工具。 目录…...
线程安全 - 笔记
1 程序a调用c.so,程序b也调用c.so c.so加载两次吗? 在这种情况下,通常 c.so 不会被加载两次。 当一个程序调用一个共享对象文件(.so)时,操作系统的动态链接器将该共享对象映射到进程的虚拟内存空间中。后续由不同程序或者同一个程序调用相同的共享对象,都不会导致共享…...
分支机构多,如何确保文件跨域传输安全可控?
随着企业全球化发展,分支机构的分布越来越广泛,跨域文件传输需求也随之增加。然而,跨域文件传输面临的数据安全和传输效率问题,使得构建一个安全、可控的文件交换系统成为迫切需求。FileLink跨网文件交换系统通过综合的技术手段和…...
长安链使用Golang编写智能合约教程(二)
长安链2.3.0的go合约虚拟机和2.3.0以下的不兼容,编译的方式也有差异,所以在ide上做了区分。 教程三会写一些,其他比较常用SDK方法的解释和使用方法 教程一:(长安链2.1.的版本的智能合约) 教程三ÿ…...
jpom linux发布前端 ruoyi
前置条件 辅助安装 安装jdk curl -fsSL https://jpom.top/docs/install.sh | bash -s Server jdkonly-moduledefault 一键安装maven 后端必备 curl -fsSL https://jpom.top/docs/install.sh | bash -s Server mvnonly-moduledefault 一键安装node 前端必备 curl -fsSL http…...
K8S认证|CKA题库+答案| 15. 备份还原Etcd
目录 15、 备份还原Etcd CKA v1.29.0模拟系统 下载试用 题目: 开始操作: 1)、切换集群 2)、登录master并提权 3)、备份Etcd现有数据 4)、验证备份数据快照 5)、查看节点和Pod状态 6࿰…...
软件架构设计属性之一:功能性属性浅析
文章目录 引言一、定义二、关键要素1. 需求满足2. 操作性3. 数据处理4. 业务流程支持5. 合规性 三、 设计原则1. 用户中心设计2. 模块化3. 抽象化4. 可扩展性5. 可维护性6. 设计原则的实施策略7. 设计原则的评估 四、实现策略1. 需求分析2. 功能分解3. 接口设计4. 技术选型5. 迭…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
