redis机制详解
RDB 快照机制
在默认情况下,Redis 会将内存数据库的快照存储在名为 “dump.rdb” 的二进制文件中。同时,你可以通过相关设置,让 Redis 在满足特定条件时自动保存数据集。例如,设定 “save 60 1000”,意味着当在 60 秒内数据集至少有 1000 个键被改动时,Redis 就会自动保存一次数据集。若想关闭 RDB 功能,只需将所有的 save 保存策略注释掉即可。
除了自动保存,还能手动生成 RDB 快照。进入 Redis 客户端后,执行 “save” 或 “bgsave” 命令都可以生成 “dump.rdb” 文件。需要注意的是,每次执行这些命令时,都会依据当前 Redis 的内存状态生成一个全新的 rdb 文件,并覆盖原有的 rdb 快照文件。
bgsave 的写时复制(COW)机制
Redis 借助操作系统提供的写时复制(Copy-On-Write,COW)技术,实现了在生成快照的同时,依然能够正常处理写命令。具体而言,“bgsave” 子进程是由主线程通过 “fork” 操作生成的,它能够共享主线程的所有内存数据。在 “bgsave” 子进程运行后,会开始读取主线程的内存数据,并将其写入 RDB 文件。
在此过程中,如果主线程只是对数据执行读操作,那么主线程和 “bgsave” 子进程之间互不干扰。然而,要是主线程要修改某块数据,这块数据就会被复制一份副本出来,“bgsave” 子进程会把这个副本数据写入 RDB 文件,而主线程依旧可以直接对原来的数据进行修改操作。
另外,配置自动生成 rdb 文件时,后台采用的就是 “bgsave” 方式。
AOF(append-only file)机制
虽然快照功能能对数据进行一定程度的持久化,但它并非十分耐久。倘若 Redis 因某些原因出现故障停机,服务器将会丢失那些最近写入却还没来得及保存到快照中的数据。
从 Redis 1.1 版本起,新增了一种具有更高耐久性的持久化方式 ——AOF 持久化。它会将每一条修改数据集的指令记录到 “appendonly.aof” 文件中(先写入操作系统缓存,每隔一段时间再通过 “fsync” 操作同步到磁盘)。
例如,执行 “set zhuge 666” 命令后,在 aof 文件里会按照 resp 协议格式记录相应数据,其中星号后面的数字表示命令包含的参数个数,“$” 号后面的数字代表对应参数的字符个数。要是执行带过期时间的 set 命令,比如 “set tuling 888 ex 1000”,aof 文件里记录的并非原始执行命令,而是记录 key 过期的时间戳。
可以通过修改配置文件开启 AOF 功能,只需设置 “appendonly yes” 即可。此后,每当 Redis 执行一个会改变数据集的命令(如 SET 命令)时,该命令就会被追加到 AOF 文件的末尾。如此一来,当 Redis 重新启动时,就能通过重新执行 AOF 文件中的命令来重建数据集。
关于 AOF 文件数据同步到磁盘的频率,有以下三种配置选项:
- appendfsync always:每次有新命令追加到 AOF 文件时,就执行一次 “fsync” 操作。这种方式虽然安全性很高,但速度很慢。
- appendfsync everysec:每秒执行一次 “fsync” 操作,它兼顾了速度和安全性,在出现故障时,最多只会丢失 1 秒钟的数据,也是推荐且默认的设置方式。
- appendfsync no:从不执行 “fsync” 操作,而是将数据交由操作系统自行处理。这种方式速度更快,但相对来说不太安全。
AOF 重写机制
随着 Redis 的使用,AOF 文件中可能会积累大量无用的指令。为此,AOF 会定期依据内存中的最新数据来重新生成 aof 文件。
例如,执行了一系列命令后,经过重写,AOF 文件中的内容会根据内存最新状态进行优化调整。
有两个配置项可用于控制 AOF 自动重写的频率:
- # auto‐aof‐rewrite‐min‐size 64mb:表示 aof 文件至少要达到 64M 的大小才会自动触发重写。因为文件太小的话,恢复速度本身就比较快,重写的意义不大。
- # auto‐aof‐rewrite‐percentage 100:意味着 aof 文件自上一次重写后,若文件大小增长了 100%,则会再次触发重写操作。
当然,AOF 也支持手动重写,进入 Redis 客户端执行 “bgrewriteaof” 命令即可进行重写。值得注意的是,AOF 重写时,Redis 同样会 “fork” 出一个子进程去执行相关操作,这与 “bgsave” 命令类似,不会对 Redis 正常处理命令造成过多影响。
RDB 和 AOF 的选择及混合持久化
在实际生产环境中,既可以启用 RDB,也可以启用 AOF。当 Redis 启动时,如果同时存在 rdb 文件和 aof 文件,会优先选择 aof 文件来恢复数据,毕竟通常情况下,aof 文件中的数据相对更全面一些。
Redis 4.0 版本引入了混合持久化这一选项(需先开启 AOF),通过配置 “# aof‐use‐rdb‐preamble yes” 即可开启该功能。开启混合持久化后,AOF 在重写时,不再仅仅是把内存数据转换为 RESP 命令写入 AOF 文件,而是会先对重写这一刻之前的内存做 RDB 快照处理,然后将 RDB 快照内容与增量的 AOF 修改内存数据的命令整合在一起,一同写入新的 AOF 文件。新生成的文件一开始并不叫 “appendonly.aof”,待重写完成后才会进行改名,并覆盖原有的 AOF 文件,完成新旧文件的替换。
借助混合持久化功能,在 Redis 重启时,可以先加载 RDB 的内容,再重放增量 AOF 日志,这样就无需像以往那样全量重放 AOF 文件,从而大幅提升了重启效率。混合持久化后的 AOF 文件有着特定的结构,以此来保障数据恢复的准确性和高效性。
Redis 数据备份策略
以下是一些常见的 Redis 数据备份策略示例:
- 编写 crontab 定时调度脚本,每小时将 rdb 文件或 aof 文件备份一份到指定目录中,并且仅保留最近 48 小时内的备份文件,及时清理过期的备份,避免占用过多磁盘空间。
- 每天保留一份当日的数据备份到特定目录,这样可以保留最近 1 个月的备份数据,方便在需要时进行历史数据回溯或数据恢复操作。
- 在每次进行备份复制操作时,对那些太过陈旧的备份文件进行删除处理,确保磁盘空间的合理利用以及备份数据的有效性。
- 每天晚上将当前机器上的备份文件复制一份到其他机器上,以此来防范因当前机器损坏等意外情况导致的数据丢失问题,增强数据的安全性和冗余性。
Redis 主从架构
配置从节点及主从工作原理
搭建 Redis 主从架构时,配置从节点需要进行相应的操作步骤。
当为 master 配置了一个 slave 后,无论这个 slave 是首次连接 Master,还是后续重新连接,它都会向 master 发送一个 PSYNC 命令来请求复制数据。
Master 收到 PSYNC 命令后,会在后台通过 “bgsave” 方式生成最新的 rdb 快照文件。在持久化过程中,Master 并不会停止接收客户端的请求,而是会把那些可能修改数据集的请求缓存在内存中。
待持久化操作完成后,Master 会将生成的 rdb 文件数据集发送给 slave,slave 接收到数据后,会先进行持久化生成 rdb 文件,再将其加载到内存中。之后,Master 还会把之前缓存在内存中的命令发送给 slave,确保 slave 能完整地复制 master 的数据状态。
并且,当 master 与 slave 之间的连接由于某些原因断开后,slave 具备自动重连 Master 的能力。如果 master 同时收到多个 slave 的并发连接请求,它只会进行一次持久化操作,然后把这份持久化的数据发送给所有并发连接的 slave,避免了重复的资源消耗。
数据部分复制(断点续传)
从 Redis 2.8 版本开始,在 master 和 slave 断开重连的情况下,不再总是进行全量数据复制,而是可以支持部分数据复制(类似断点续传功能),这得益于 PSYNC 命令的使用。
Master 会在其内存中创建一个用于复制数据的缓存队列,用来缓存最近一段时间的数据。Master 和它所有的 slave 都各自维护了复制的数据下标 “offset” 以及 Master 的进程 ID。
当网络连接断开后,slave 会向 master 请求继续进行未完成的复制操作,从所记录的数据下标开始进行。不过,如果 Master 的进程 ID 发生了变化,或者从节点数据下标 “offset” 太过陈旧,已经超出了 Master 的缓存队列范围,那么就会进行一次全量数据的复制。
缓解主从复制风暴
若存在很多从节点,可能会出现主从复制风暴的情况,即多个从节点同时向主节点请求复制数据,导致主节点压力过大。针对这种情况,可以通过合理的架构设计来进行优化,例如让部分从节点与已经和主节点同步过的从节点进行数据同步,以此分担主节点的压力,优化整个主从复制的流程和性能。
希望以上优化后的内容能让你对 Redis 的这些核心机制和架构有更清晰、顺畅的理解,如果你还有其他疑问或者需要进一步详细介绍某些部分,可以随时告诉我哦。
相关文章:
redis机制详解
RDB 快照机制 在默认情况下,Redis 会将内存数据库的快照存储在名为 “dump.rdb” 的二进制文件中。同时,你可以通过相关设置,让 Redis 在满足特定条件时自动保存数据集。例如,设定 “save 60 1000”,意味着当在 60 秒内…...
【知识科普】Linux系统下用户权限体系
文章目录 概述一、用户类型二、用户权限的组成三、权限的表示方法四、权限的修改方法五、特殊权限六、权限掩码(umask) 密码相关一、修改用户密码二、删除用户密码三、设置用户密码有效期四、查询用户密码信息五、密码策略配置 SSH远程访问1. 检查SSH服务…...
【数据结构】堆
目录 一、堆 二、堆的模拟实现 1.结构体 2.push 3.pop和top 三.实现堆排序 1.成堆算法 2.堆排序 heap模拟实现源码_gitee 一、堆 分为大堆和小堆 大堆是每个父节点都大于子节点,小堆则相反是每个父节点都小于子节点 底层抽象结构是完全二叉树࿰…...
6.824/6.5840 Lab 1: MapReduce
宁静的夏天 天空中繁星点点 心里头有些思念 思念着你的脸 ——宁夏 完整代码见: https://github.com/SnowLegend-star/6.824 由于这个lab整体难度实在不小,故考虑再三还是决定留下代码仅供参考 6.824的强度早有耳闻,我终于也是到了挑战这座高…...
Day5:生信新手笔记 — R语言基本语法
一、数据类型 (重点只有两个,剩下的不看) 1.1 向量(vector) 矩阵(Matrix) 数组(Array) 1.2 数据框(Data frame) x<- c(1,2,3) #常用的向…...
lua download
https://www.lua.org/ https://www.lua.org/versions.html#5.4...
安装更新upgrade导致ubuntu崩溃
安装更新导致ubuntu崩溃 前言uuid编不过,导致的崩溃 记录一些ubuntu崩溃的过程。 目前只有一个,以后遇到都放在这里,以提醒自己。 前言 如果从10000年看现在的linux,不是说不完美,而是糟透了。 linux的版本号…...
软件测试最新项目合集【商城、外卖、银行、金融等等.......】
项目一:ShopNC商城 项目概况: ShopNC商城是一个电子商务B2C电商平台系统,功能强大,安全便捷。适合企业及个人快速构建个性化网上商城。 包含PCIOS客户端Adroid客户端微商城,系统PC后台是基于ThinkPHP MVC构架开发的跨…...
【学习总结|DAY09】Java 流程控制与数据操作练习一:录入三位数并筛选符合条件的数字
一、主要代码: import java.util.Scanner;public class demo07 {public static void main(String[] args) {Scanner scanner new Scanner(System.in);System.out.print("请输入一个大于100的三位数:");int number scanner.nextInt();if (nu…...
“放弃Redis Desktop Manager使用Redis Insight”:日常使用教程(Redis可视化工具)
文章目录 更新Redis Insight连接页面基础解释自动更新key汉化暂时没有找到方法, Redis Desktop Manager在连接上右键在数据库上右键在key上右键1、添加连接2、key过期时间 参考文章 更新 (TωT)ノ~~~ βyё βyё~ 现在在维护另一…...
使用lumerical脚本语言创建弯曲波导并进行数据分析(纯代码实现)
本文使用lumerical脚本语言创建弯曲波导、设置有限差分时域(FDTD)模拟、改变波导弯曲半径计算损耗、绘制图像展示电场强度分布情况及对具有不同弯曲半径的波导进行一系列模拟和分析操作(代码均有注释讲解)。 一、创建弯曲波导 1.1 基本结构讲解 (1)包层(Clad) 在波导结…...
AC+AP漫游实验
实验拓扑 实验要求 1.AP1服务vlan10,AP2服务vlan20,实现三层漫游 2.AP1与AP2为不同AP组,直接转发 实验步骤 1.配置VLAN放行相关流量 交换机与AP接口为trunk口并修改PVID为30 2.配置相关业务使得ap上线 3.配置vap上线,AP可用…...
七:仪表盘安装-controller node
一:工具、环境准备-controller node 二:OpenStack环境准备-controller node 三:安装服务-controller node 四:工具、环境准备-compute node 五:OpenStack环境准备-compute node 六:安装服务-compute node 七…...
pandas习题 067:小于 60 的部分列修改为 60
(编码题)修改以下名为 df 的 DataFrame 的值,将 Q1、Q2、Q3、Q4 列中小于 60 的分数修改为 60。 import pandas as pd# 示例数据 data = {name: [Alice, Bob, Charlie],...
Flutter 版本管理工具FVM
FVM是一款非常好用的Flutter版本管理工具。FVM官网: 下面是使用 FVM(Flutter Version Manager)管理 Flutter 版本的整个流程,包括安装、配置环境变量以及基本的使用步骤。 1. 安装 FVM FVM 可以通过多种方式安装,下…...
图学习GNN笔记
目录 第一部分:预测分析中的图学习4.3 案例研究:图上的学习机器学习生命周期 第二部分:图特征学习特征表示与嵌入为什么难以学习? 第三部分:节点嵌入嵌入节点设置学习节点嵌入浅层编码如何定义节点相似性? …...
装饰器—购物打折
from collections import namedtuple# 定义促销策略列表 promos []# 装饰器函数,用于注册促销策略 def promotion(promo_func):promos.append(promo_func)return promo_func# 促销策略1:忠诚度积分折扣 promotion def fidelity(order):""&quo…...
【Linux---10】本地机器 <=> 服务器 文件互传
文章目录 1. 小文件互传2. 大文件互传 1. 小文件互传 使用sz命令。 说明:sz命令是ZModem文件传输协议的一部分,用于在Linux和Unix系统中,从本地系统发送(send)文件到远程系统。sz命令通常与rz命令(ZModem接…...
Mysql数据库基础篇笔记
目录 sql语句 DDL——数据库定义语言(定义库,表,字段) 数据库操作: 表操作: DML 增删改语句 DQL 语法编写顺序: 条件查询 DCL 用户管理: 权限管理: 函数 常见字符串内置函…...
QT 实现QStackedWidget切换页面右移动画
1.实现效果 以下是一个QStackedWidget,放了两个QPushButton在上面,点击切换不同的界面。 为了方便查看动画特效,设置了每个界面的背景图片。 2.实现思路 首先截取当前界面的图片,渲染到一个QLabel上,然后设置QPropertyAnimation动画,动画的作用对象就是这个QLabel,不断…...
RocketMQ rocketmq-tools管理主题
RocketMQ rocketmq-tools管理主题 环境和软件版本增删改查 环境和软件版本 Win10、IDEA、Jdk1.8、rocketmq 5.1.3、rocketmq-tools 5.1.3 引入依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-tools</artifactId&g…...
Docker 容器隔离关键技术:Seccomp
Docker 容器隔离关键技术:Seccomp 在 Docker 容器中,Seccomp(Secure Computing Mode) 是一种内核安全机制,用来限制容器内的程序可以调用哪些系统调用(Syscalls)。通过列清单的方式,…...
2024年顶级小型语言模型前15名
本文,我们将深入了解2024年备受瞩目的十五款小型语言模型(SLMs),它们分别是Llama 3.1 8B、Gemma2、Qwen 2、Mistral Nemo、Phi-3.5等。这些SLMs以其精巧的体积和高效率著称,它们不需要依赖庞大的服务器资源,…...
【大模型微调】pdf转markdown
目前市面上大部分都是pdf文档,要想转换成能训练的文本,调研了各种工具。 觉得MinerU确实不错。 参考此链接进行操作 MinerU/docs/README_Ubuntu_CUDA_Acceleration_en_US.md at master opendatalab/MinerU GitHub 需要注意的几个点: 1. 使用root账户安装的,配置文件在…...
【Nacos02】消息队列与微服务之Nacos 单机部署
Nacos 部署 Nacos 部署说明 Nacos 快速开始 Nacos 快速开始 版本选择 当前推荐的稳定版本为2.X Releases alibaba/nacos GitHuban easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications. - Re…...
PROTEUS资源导引
本专栏讲述51、32单片机的仿真设计,且所有文章资源共享,如需哪篇文章,可按ctrlF键搜索查询,点击进入即可。 -----------------------------------------------------------目录------------------------------------------------…...
对力扣77组合优化的剪枝操作的理解
77. 组合 代码随想录放出了这一张图 我乍一看觉得想当然,但是仔细想想,又不知道以下剪枝代码作何解释,因此我想通过这篇文章简要解释一下 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(int n, int k, int sta…...
FFmpeg 4.3 音视频-多路H265监控录放C++开发十九,ffmpeg封装
封装就是将 一个h264,和一个aac文件重新封装成一个mp4文件。 这里我们的h264 和 aac都是来源于另一个mp4文件,也就是说,我们会将 in.mp4文件解封装成一路videoavstream 和 一路 audioavstream,然后 将这两路的 avstream 合并成一…...
http 与 https 汇总
文章目录 http 与 httpsHTTP(超文本传输协议)介绍1. 基本概念2. 工作原理3. 特点4. 应用场景 HTTPS(超文本传输安全协议)介绍1. 基本概念2. 工作原理3. 特点4. 应用场景 HTTP协议的工作原理请求阶段响应阶段客户端解析处理 协议的…...
龙蜥 Linux 安装 Nginx
龙蜥 Linux 安装 Nginx 下载编译安装配置编译参数先装依赖编译安装 使用启动检查配置文件重启关闭 503权限问题参考资料 下载 下载地址详情见参考资料,我下的 nginx-1.26.2.tar.gz 到 /home/jerry/ /home/jerry$ curl -O http://nginx.org/download/nginx-1.26.2.…...
8. 一分钟读懂“代理模式”
8.1 模式介绍 代理模式是一种结构型设计模式,它通过提供一个代理对象来替代对另一个对象(真实对象)的访问。代理对象与真实对象实现相同的接口,并通过代理类对真实对象的访问进行控制,可以在调用前后执行附加操作&…...
分布式搜索引擎Elasticsearch
Elasticsearch是一个基于Lucene库的开源分布式搜索引擎,它被设计用于云计算中,能够实现快速、near-real-time的搜索,并且可以进行大规模的分布式索引。 以下是一个简单的Python代码示例,展示如何使用Elasticsearch的Python客户端…...
完全按照手册win10里装Ubuntu 虚拟机然后编译ESP32(主要是想针对ESP32C3和S3)开发板的鸿蒙系统(失败)
基本上完全按照手册来的,除了Ubuntu虚拟机使用了22.04 Jammy版本,鸿蒙手册里是20.04 版本,主要是鸿蒙里3年前的手册了,所以就擅自用了高版本。 据此还想到一点,鸿蒙LiteOS,还挺稳定的,3年也没有…...
MySQL 8.0与PostgreSQL 15.8的性能对比
以下是MySQL 8.0与PostgreSQL 15.8的性能对比: MySQL 8.0性能特点: MySQL在处理大量读操作时表现出色,其存储引擎InnoDB提供了行级锁定和高效的事务处理,适用于并发读取的场景。MySQL通过查询缓存来提高读取性能,查询缓…...
hive 行转列
行转列的常规做法是,group bysum(if())【或count(if())】 建表: CREATE TABLE table2 (year INT,month INT,amount DOUBLE );INSERT INTO table2 (year, month, amount) VALUES(1991, 2, 1.2),(1991, 3, 1.3),(1991, 4, 1.4),(1992, 1, 2.1),(1992, 2, 2.2),(1992…...
linux——进程间通信system V消息队列
Linux——命名管道及日志-CSDN博客 文章目录 目录 文章目录 前言 一、system V消息队列是什么? 二、相关库接口 1.shmget接口 2、ftok接口 3、shmget、ftok接口封装 4、共享内存操作 编辑 5、shmdt接口 三.函数的调用 1、查看共享内存 2、shell 四…...
Seatunnel解决ftp读取json文件无法读取数组以及格式化之后的json无法解析的问题
问题原因 在JsonRead这个方法里面 在源码中使用的逻辑是读取一行 然后把这个json进行解析 但是这样存在一个问题 比如如果json的格式是这样的 { name:“zhangsan”, age:25 } 如果是这样的话 第一行读到的内容就是 { 显然 一个 { 并不是一个…...
[Vue Router warn]: No match found for location with path 解决方法
在使用vue3 vue-router4时 当列表A组件使用 加上keep-alive缓存后,跳转至详情页面时出现 [Vue Router warn]: No match found for location with path "/atlas/editDetails" 解决方案: 把 router.push({ path: "/atlas/editDetails&…...
优傲协作机器人 Remote TCP Toolpath URCap(操作记录)
目录 一、新机设置项 1、设置管理员密码 2、设置安全密码 3、设置负载 二、激活 Remote TCP & Toolpath URCap 1、插入U盘 2、打开激活面板 3、导入许可证 4、查看是否激活成功 5、启用功能 三、使用流程(官方) 步骤一 步骤二 步骤三 …...
使用历史索引监控 Elasticsearch 索引生命周期管理
作者:来自 Elastic Stef Nestor 大家好!在之前的一篇博客中,我们概述了常见的索引生命周期管理 (index lifecycle management - ILM) 问题及其解决方案。此后,我们已将这些常见场景添加到我们的 Elasticsearch 文档中,…...
[网络安全]sqli-labs Less-5 解题详析
[网络安全]Less-5 GET - Double Injection - Single quotes - String:双注入GET单引号字符型注入 判断注入类型判断注入点个数查库名(爆破) left函数抓包查库名(双查询注入) 原理实例查库名(extractvalue函数ÿ…...
贪心算法入门(一)
第1题 礼物 查看测评数据信息 国庆马上要到了。小明喜欢的礼物有n种分别是:公仔、电子手表、漫画书等。 每种礼物有一件,每种礼物价钱都不一样。小明手头上有 m 元。 小明最多可以买多少件礼物? 输入格式 第一行,两个整数&…...
HTTP 探秘之旅:从入门到未来
文章目录 导言:目录:第一篇:HTTP,互联网的“快递员”第二篇:从点开网页到看到内容,HTTP 究竟做了什么?第三篇:HTTP 的烦恼与进化史第四篇:HTTP 的铠甲——HTTPS 的故事第…...
网络安全技术详解:虚拟专用网络(VPN) 安全信息与事件管理(SIEM)
虚拟专用网络(VPN)详细介绍 虚拟专用网络(VPN)通过在公共网络上创建加密连接来保护数据传输的安全性和隐私性。 工作原理 VPN的工作原理涉及建立安全隧道和数据加密: 隧道协议:使用协议如PPTP、L2TP/IP…...
人工智能中的深度学习:原理与实践
什么是深度学习? 深度学习(Deep Learning)是机器学习的一个分支,旨在通过模拟人脑的神经网络结构来解决复杂的任务。深度学习通过多层神经网络,自动从数据中学习特征,避免了传统机器学习中手动特征工程的繁…...
复现SMPLify-X: Ubuntu22.04, Cuda-11.3, GPU=3090Ti
Env: 3090Ti CUDA 最低支持版本需要>cuda-11.1 Ubuntu 22.04 Installation: Installing CUDA11.3 wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run sudo sh cuda_11.3.0_465.19.01_linux.run …...
qt QGraphicsScale详解
1、概述 QGraphicsScale是Qt框架中提供的一个类,它提供了一种简单而灵活的方式在QGraphicsView框架中实现缩放变换。通过设置水平和垂直缩放因子、缩放中心点,可以创建各种缩放效果,提升用户界面的交互性和视觉吸引力。结合QPropertyAnimati…...
全新首发小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统
全新首发小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统 php7.4及以上 / mysql5.6 / 伪静态:thinkphp / 运行目录:/public / 修改数据库:/config/database.php /后台:/admin 账号密码 admin q2821706481 …...
ubuntu 根分区逻辑卷扩容
1、虚拟机关机通过管理界面给磁盘扩容。 rootcurtis:/home/curtis/git_code# pvdisplay--- Physical volume ---PV Name /dev/vda3VG Name ubuntu-vgPV Size <239.00 GiB / not usable 0Allocatable yes (but full)PE…...
Word分栏后出现空白页解决方法
Word分栏后出现空白页解决方法 只需要在后面的空白页设置相同的页面布局(分栏格式),然后按Ctrl backspace即可删除该空白页。 参考文章:Word分栏出现空白怎么解决。...