MySQL 快速删除大量数据(千万级别)的几种实践方案详解
笔者最近工作中遇见一个性能瓶颈问题,MySQL表,每天大概新增776万条记录,存储周期为7天,超过7天的数据需要在新增记录前老化。连续运行9天以后,删除一天的数据大概需要3个半小时(环境:128G, 32核,4T硬盘),而这是不能接受的。当然如果要整个表删除,毋庸置疑用TRUNCATE TABLE就好。最初的方...
2024-01-10一次Docker中Redis连接暴增的问题排查实战记录
周六生产服务器出现redis服务器不可用状态,错误信息为:状态不可用,等待后台检查程序恢复方可使用。Unexpected end of stream; expected type 'Status'如下图所示,下图6300就是我们redis服务器运行的端口。头一次碰到此类问题,心想难道是redis挂掉了,随即通过telnet ip+端口。发现运行正常,然后就想着进入...
2024-01-10Windows 和 Linux 上Redis的安装守护进程配置方法
# Windows 和 Linux 上Redis的安装守护进程配置Redis 简介 Redis是目前最常用的非关系型数据库(NOSql)之一,常以Key-Value的形式存储。Redis读写速度远远比关系型数据库高(mysql、oracle)。所以常用作项目热数据缓存Windows上的安装配置1) 在GitHub下载https://github.com/microsoftarchive/redis/releases2) 解压并安装redis服务...
2024-01-10如何使用docker部署前端应用的方法步骤
docker 变得越来越流行,它可以轻便灵活地隔离环境,进行扩容,方便运维管理。对开发者也更方便开发,测试与部署。最重要的是, 当你面对一个陌生的项目,你可以照着 Dockerfile,甚至不看文档(文档也不一定全,全也不一定对)就可以很快让它在本地跑起来。现在很强调 devops 的理念,我把 devops ...
2024-01-10webpack文件打包错误异常
在进行webpack打包前我们要确保已完成的工作:1)安装webpack:推荐全局命令 npm install -g webpack 查看webpack版本 webpack -v2)此时对文件进行打包可能出现错误,提示脚手架文件错误,因为在webpack4的版本里,CLI被单独分离出来了所以要我们单独安装 执行全局命令 npm install -g webpack-cli 安装完脚手架,按理...
2024-01-10JavaScript实现Tab栏切换特效
这里分享一个前端必会的案例,是一个Tab栏的切换效果,除了Tab栏本身会被点击切换之外,Tab本身也决定着其下方的内容板块的显示。运行效果展示:如上图所示,其实就是点击上方的Tab栏然后Tab栏本身的样式会被修改,然后其下方的内容块也会跟着显示对应的内容。这样的效果以及功能在前端的...
2024-01-10一篇文章弄懂javascript内存泄漏
1、什么是内存泄漏在了解什么是内存泄漏之前, 我们应该要对内存是什么有个概念, 随机存取存储器(英语:Random Access Memory,缩写:RAM)是与 CPU 直接交换数据的内部存储器。它可以随时读写, 而且速度很快,通常作为操作系统或其他正在运行中的程序的临时资料存储介质。什么是内存泄漏? :程序不...
2024-01-10深入理解React Native核心原理(React Native的桥接(Bridge)
在这篇文章之前我们假设你已经了解了React Native的基础知识,我们会重点关注当native和JavaScript进行信息交流时的内部运行原理。主线程在开始之前,我们需要知道在React Native中有三个主要的线程:shadow queue:负责布局工作main thread:UIKit 在这个线程工作(译者注:UI Manager线程,可以看成主线程,主...
2024-01-10Java算法之最长公共子序列问题(LCS)实例分析
本文实例讲述了Java算法之最长公共子序列问题(LCS)。分享给大家供大家参考,具体如下:问题描述:一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X= { x1, x2,…, xm},则另一序列Z= {z1, z2,…, zk}是X的子序列是指存在一个严格递增的下标序列 {i1, i2,…, ik},使得对...
2024-01-10Java语言实现二叉堆的打印代码分享
二叉堆是一种特殊的堆,二叉堆是完全二元树(二叉树)或者是近似完全二元树(二叉树)。二叉堆有两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。打印二叉堆:利用层级关系我这里是先将堆排...
2024-01-10Java concurrency集合之LinkedBlockingDeque_动力节点Java学院整理
LinkedBlockingDeque介绍LinkedBlockingDeque是双向链表实现的双向并发阻塞队列。该阻塞队列同时支持FIFO和FILO两种操作方式,即可以从队列的头和尾同时操作(插入/删除);并且,该阻塞队列是支持线程安全。此外,LinkedBlockingDeque还是可选容量的(防止过度膨胀),即可以指定队列的容量。如果不指定,默认容...
2024-01-10把Jar文件转成exe安装文件的实现方法
1.你要清楚的目标文件是32位还是64位的,如果生成的是32位,你就要使用32位的jre,如果生成的是64位,就要使用64位的jre。图 1在圆圈位置进行32bit或64bit的选择。因为我要创建的是32bit,所以就使用默认的。2.JRE的配置(没配置好的话报各种JAVA_HOME错误):我先创建一个文件夹叫“HJ小助手”,然后把...
2024-01-10详解Java二叉排序树
一、二叉排序树定义1.二叉排序树的定义 二叉排序树(Binary Sort Tree)又称二叉查找(搜索)树(Binary Search Tree)。其定义为:二叉排序树或者是空树,或者是满足如下性质的二叉树:①若它的左子树非空,则左子树上所有结点的值均小于根结点的值;②若它的右子树非空,则右子树上所有结点的值均大...
2024-01-10Java设计模式之模版方法模式简介
Java设计模式的模板方法模式定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。属于行为类模式如下图所示:事实上,模版方法是编程中一个经常用到的模式。先来看一个例子,某日,程序员A拿到一个任务:给定一个整数...
2024-01-10卡巴斯基报告:Lazarus APT 组织的大型狩猎游戏
原文链接:Lazarus on the hunt for big game译者:知道创宇404实验室翻译组 毫无疑问,2020 年将成为历史上令人不愉快的一年。在网络安全领域,针对目标的勒索软件攻击日益增加,集体的伤害就更加明显。通过调查许多此类事件,并通过与一些值得信赖的行业合作伙伴讨论,我们认为我们现在对勒索软件...
2024-01-10在 Tesla Model S 上实现 Wi-Fi 协议栈漏洞的利用
作者:腾讯科恩实验室公众号:https://mp.weixin.qq.com/s/rULdN3wVKyR3GlGBhunpoQ在过去的两年里,腾讯科恩实验室对特斯拉汽车的安全性进行了深入的研究并在Black Hat 2017与Black Hat 2018安全会议上两次公开分享了我们的研究成果。我们的研究成果覆盖了车载系统的多个组件。我们展示了如何攻入到特斯拉汽车的CI...
2024-01-10Drupal 1-click to RCE 分析
作者:LoRexxar'@知道创宇404实验室时间:2019年4月19日英文版本:https://paper.seebug.org/927/2019年4月11日,zdi博客公开了一篇A SERIES OF UNFORTUNATE IMAGES: DRUPAL 1-CLICK TO RCE EXPLOIT CHAIN DETAILED.整个漏洞的各个部分没什么特别的,巧妙的是,攻击者使用了3个漏洞+几个小trick,把所有的漏洞链接起来却成了一个还不错...
2024-01-10mongodb分片集群日志的连接定位
如何从mongodb的日志片段“I COMMAND [conn10217]” 中的conn10217定位到是那个mongos连接过来的发起的command请求,能定位到是哪个服务器(ip)上过来的请求。回答:1.通过查看mongodb的源代码,在客户端线程初始化中有这样一处代码。string fullDesc = desc;if ( str::equals( "conn" , desc ) && mp != NULL ) fullDesc = str::stream...
2024-01-10mongodb 分页查询问题
// php代码 $pdf_table_infos = $pdf_collection->aggregate( [ ['$match' => [ $need_table_id => ['$regex' => "^[0-9]"], "short_name" => ['$regex' => $pdf_name], ]...
2024-01-10gcc编译怎么确定在什么目录下去编译,设置头文件路径啊?
如下的结构,我该在什么目录下编译啊,如何制定头文件的路径啊?回答:你这个是开源项目中的demo代码吧,开源项目中在第一级目录下通常都一个README.md的文件或者install.md的文件,这个文件中有编译和安装的说明。如果在源代码目录下找不到1点中所说的文件,则到开源项目网站去查找相关的编...
2024-01-10