- 博客(45)
- 收藏
- 关注
原创 redis持久化和数据淘汰方案
Redis提供了两种持久化方案:RDB和AOF。RDB通过定时生成内存快照文件来备份数据,适合追求快速恢复和容忍少量数据丢失的场景。其优点是内存效率高、服务不中断、快照性能好且数据一致,但数据完整性较低。AOF则通过记录每个写命令来保证数据的完整性,适合对数据安全性要求较高的场景。AOF文件较大,但可以通过重写压缩文件。AOF的刷盘策略有always、everysec和no三种,分别对应不同的性能和可靠性权衡。RDB和AOF各有优劣,RDB恢复速度快但数据完整性较低,AOF数据完整性高但恢复速度较慢。根据实
2025-05-18 13:14:30
613
原创 redis读写一致问题
Redis读写一致性问题是在高并发场景下常见的挑战,尤其是在数据库和缓存数据不一致时。文章探讨了两种常见的处理策略:先删缓存再更新数据库和先更新数据库再删缓存。前者可能导致缓存中写入旧数据,后者则可能在并发查询时缓存脏数据。为了解决这些问题,文章提出了延迟双删策略,即在更新数据库后延迟一段时间再次删除缓存,以确保缓存中的数据与数据库一致。此外,文章还介绍了通过分布式锁(读写锁)来进一步控制并发访问,避免数据不一致。虽然延迟双删和加锁策略能有效缓解一致性问题,但它们也存在操作复杂、性能损耗等缺点,建议根据业务
2025-05-18 11:44:21
1100
原创 使用lua优化一人一单问题
在集群环境下,一人一单的并发问题可以通过Lua脚本结合Redis来解决。Lua脚本能够保证Redis操作的原子性,避免了传统锁机制的开销。具体实现中,Lua脚本首先检查库存是否充足,然后验证用户是否已下单,最后执行扣库存和保存用户订单的操作。Java代码通过调用Lua脚本,确保在高并发
2025-05-15 21:53:15
193
原创 redis解决常见的秒杀问题
Redis在解决秒杀问题中,通过全局唯一ID生成器确保订单ID的唯一性、高可用性和安全性。全局唯一ID由时间戳和序列号组成,利用Redis的自增命令实现高效生成。秒杀下单功能中,通过查询优惠券、判断库存、扣减库存、创建订单等步骤实现,但存在超卖问题。超卖问题可通过悲观锁或乐观锁(如版本号法或CAS法)解决,确保数据操作的原子性和一致性。Redis的高性能和分布式特性使其成为解决秒杀问题的理想选择。
2025-05-15 21:08:14
1357
原创 redis缓存的应用
Component@Slf4j/*** 获取锁*//*** 释放锁*//*** 数据预热(将热点数据提前存储到 Redis 中)* @param key 预热数据的 Key* @param value 预热数据的 Value* @param expireTime 逻辑过期时间* @param timeUnit 时间单位*//*** 将 Java 对象序列化为 JSON 存储到 Redis 中并且设置 TTL 过期时间。
2025-03-07 16:08:57
826
原创 redis基础结构
基础结构描述常用指令示例String(字符串)最基本的数据结构,可以存储字符串、整数或浮点数SETGETINCRDECRAPPENDMSETMGETGET keyList(列表)有序集合,允许重复元素,底层为双向链表LPUSHRPUSHLPOPRPOPLRANGESet(集合)无序集合,不允许重复元素SADDSREMSMEMBERSSISMEMBERHash(哈希)类似于对象,存储键值对HSETHGETHGETALLHDELZSet(有序集合)具有权重(score)的集合,元素按分数排序。
2025-03-06 20:50:11
913
原创 Hexo常用指令大全
icarus教程:https://ppoffice.github.io/hexo-theme-icarus/categories/Widgets/我的个人博客:https://garybyd.github.io/掌握这些命令可提升博客管理效率,建议结合。categories: Hexo教程。title: Hexo常用指令大全。
2025-03-06 20:48:50
275
原创 安卓构建项目下载依赖太慢了配置阿里云镜像解决
settings.gradle.kts文件下的dependencyResolutionManagement。注意一定要在google()和mavenCentral上面才能生效。依赖下载速度实测约一分钟左右。将以上的镜像源配置到。
2025-03-05 13:08:03
231
原创 汇编程序设计常见题目
题 101 显示字符串:调用 DOS 功能显示字符串’Hello,Assembly!题 102 显示字符串:调用输入输出子程序显示字符串’Hello,Assembly!题 103 两个有符号十进制数相减:从键盘输入两个有符号十进制数相减,显示结果。题 104 两个有符号十进制数相乘:从键盘输入两个有符号十进制数相乘,显示结果。题 105 表达式计算:从键盘输入 16 位有符号数 x, y, z, v,计算(v-(x*y+z–540))/x, 并显示结果。
2024-12-25 14:57:20
577
原创 yum源问题的解决方案
yum 直接安装tree的问题截图这个错误表明你的系统没有正确注册到 Red Hat Subscription Management(这个问题不用管),也没有配置有效的 YUM 软件仓库,因此无法安装或更新软件包。
2024-11-26 15:33:57
281
原创 配置x86环境下的MASM 能直接在windows11上运行一步到位
解决MASM在x86环境下编译后的程序能在windows下快捷如果有用请加个星星吧。
2024-10-25 11:00:49
426
1
原创 一个简单的个人博客管理平台适合新手学习(最底下有github链接)
左边为文章界面点击文字名字就能进行阅读右边为热门博客功能能够实时统计前五名博客热度并且将前三名展示在卡片中(卡片上的时间为该文章的创建时间)允许检索内容和模糊搜素以及统计热度。
2024-09-25 20:49:25
522
原创 一个自动登入校园网脚本简单案例
江西理工大学校园网自动登入脚本(电信登入脚本,其他脚本可以通过复制请求时候的链接改(不过好像差不多可能浏览器有缓存选项的功能?玄学!))
2024-09-10 14:25:30
1241
原创 2024年用scrapy爬取BOSS直聘的操作
query = ""# 检查文件是否存在,如果不存在则创建一个空文件pass#此处省略#此处省略try:qe = input('请搜索岗位和城市id(空格隔开):').split(' ')query=
2024-07-03 19:58:12
2625
6
原创 stm32中的SDIO
要使用 SD 卡制造商特定的 ACMD 命令如 ACMD6,需要在发送该命令之前发送 CMD55 命令,告知 SD 卡接下来的命令为特定应用命令。CMD55 命令只对紧接的第一个命令有效,SD 卡如果检测到 CMD55 之后的第一条命令为 ACMD 则执行其特定应用功能,如果检测发现不是 ACMD 命令,则执行标准命令。CMD12可以中断正在进行的数据通信,让卡返回到传输状态。• CMD:命令控制线,SDIO主机通过该线发送命令控制SD卡,如果命令要求SD卡提供应答,SD卡也是通过该线传输应答信息;
2024-01-25 16:51:53
3477
原创 fatfs_diskio关键代码
0// 预留 SD 卡使用1# define ATA 0 // 预留 SD 卡使用 # define SPI_FLASH 1 // 外部 SPI Flash。
2024-01-23 10:47:37
945
原创 stm32中的SPI
SPI一共三条总线CPHA:当 CPHA=0 时,MOSI 或 MISO 数据线上的信号将会在SCK 时钟线的“奇数边沿”被采样。当 CPHA=1 时,数据线在 SCK 的“偶数边沿”采样。一个边沿被设置为采样后另一个边沿只能为读取数据。CPOL:控制SCK空闲时刻的电平,0为低电平,1为高电平。由波特率发生器根据“控制寄存器 CR1”中的 BR[0:2] 位控制SPI 的 MOSI 及 MISO 都连接到数据移位寄存器上,数据移位寄存器的数据来源及目标接收、发送缓冲区以及 MISO、MOSI 线。当
2024-01-22 15:07:06
2422
原创 stm32中的i2c协议
协议通讯图I2C上一个总线能挂载多个设备共用信号线,可以连接多个从机只用了两个总线,一条双向串行数据线(SDA),一条串行时钟线(SCL)。数据线即用来表示数据,时钟线用于数据收发同步。每个连接到总线的设备都有独立的地址,主机可以通过该地址进行访问I2C空闲时输出高阻态,当所有设备都空闲时,由上拉电阻把总线拉成高电平主机同时使用总线时,会用仲裁的方式来决定。
2023-12-29 21:39:40
1642
原创 stm32DMA
DMA(Direct Memory Access)—直接存储器存取,是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候,CPU 可以干其他的事情,DMA 控制器独立于内核,属于一个单独的外设。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLASH。DMA 控制器包含了 DMA1 和 DMA2,其中 DMA1 有 7 个通道,DMA2 有 5 个通道,这里的通道可以理解为传输数据的一种管道。
2023-12-21 20:41:03
1110
原创 usart串口以及通信基本概念
STM32 标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。简单来说物理层规定我们用嘴巴还是用肢体来交流,协议层则规定我们用中文还是英文来交流。通用同步异步收发器 (Universal Synchronous Asynchronous Receiver and Transmitter) 是一个。
2023-12-17 22:47:13
1262
原创 stm32中断概览
NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。在固件库中,NVIC 的结构体定义可谓是颇有远虑,给每个寄存器都预留了很多位,恐怕为的是日后扩展功能。中断-1 NVIC 结构体定义,来自固件库头文件:core_cm3.h// 中断使能寄存器// 中断清除寄存器// 中断使能悬起寄存器// 中断清除悬起寄存器// 中断有效位寄存器// 中断优先级寄存器 (8Bit wide)// 软件触发中断寄存器。
2023-12-10 14:37:57
1287
1
原创 基于51单片机的温度传感器小项目
4.demo中是储存一个字节大小的数据只能满足char类型显然不能满足float存储需要四个字节大小的要求因此可以通过循环调用四次来实现读写float类型的功能,所以自己写了一个读取float类型的模板。本来一开始是写好了读取第一次超出阀值时候的温度和时间但是温度的模块所需要用到的单总线和时钟模块的引脚发生了冲突导致写好的代码无奈删除QWQ。5.如何正常的显示值的改变实时更新改变的Thigh TLow的值(本小功能的最大问题)1.LCD的显示只能显示整数类型,LCD的模板中没有float类型的读取。
2023-12-04 16:41:52
1403
原创 stm32RCC时钟模块
系统时钟(按调配顺序排列)作用由GFGR控制端HSE 高速外部时钟信号外部时钟源CFGR 的位 17:PLLXTPREPLL 时钟源处理HSE后的时钟源CFGR 的位 16:PLLSRCPLL 时钟 PLLCLK对 PLL 的时钟来源进行倍频CFGR的位 21-18:PLLMUL[3:0]系统时钟 SYSCLK处理HSI、PLLCLK、HSE后的时钟源CFGR 的位 1-0:SW[1:0]AHB2 总线时钟 HCLK对PCLK2进行分频处理。
2023-12-02 11:35:30
1488
原创 GPIO按键输入
为了消除按键的抖动,即按键在接通或断开时可能会出现短暂的不稳定状态,通常会使用软件或硬件的方法来处理。通过设定一个时间阈值,只有在电容器充放电过程超过这个时间后,才认定按键状态的改变是有效的,从而实现消抖的效果。松开按键时,电容器开始放电。按下按键时,电容器开始充电,电容器上的电压会逐渐增加。在这个过程中,通过测量电容器上的电压变化,可以检测按键的状态。因此,电容按键消抖的原理在于利用电容器充放电的时间特性,并结合阈值判断来识别有效的按键操作,从而避免因按键抖动导致的错误触发或信号不稳定的情况。
2023-12-01 19:18:24
625
1
原创 使用寄存器点亮LED灯
元件作用保护二极管及上、下拉电阻引脚的两个保护二级管可以防止引脚外部过高或过低的电压输入P-MOS 管和 N-MOS 管使 GPIO 具有了“推挽输出”和“开漏输出”两种模式。输出数据寄存器可以修改 GPIO 引脚的输出电平复用功能输出stm32上的其他片对GPIO引脚的进行控制,此时作为该片上功能的一部分输入数据寄存器读取该寄存器就可以了解 GPIO 引脚的电平状态复用功能输入GPIO 引脚的信号传输到 STM32 其它片上外设,由该外设读取引脚状态模拟输入输出。
2023-11-19 19:34:37
328
原创 初识stm32
我们经常说的 GPIO、串口、I2C、SPI 这些外设就挂载在这两条总线上,这个是我们学习 STM32 的重点,就是要学会编程这些外设去驱动外部的各种设备。FSMC 的英文全称是 Flexible static memory controller,叫灵活的静态的存储器控制器,是STM32F10xx 中一个很有特色的外设,通过 FSMC,情况1:如果不使用DMA总线,CPU首先要通过Dcode总线把数据从SRAM读取到CPU的通用寄存器中,CPU再把数据传到内部的外设。可以在内部的 FLASH。
2023-11-19 19:21:19
81
原创 51单片机中的红外遥控
红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出通信方式:单工,异步红外LED波长:940nm通信协议标准:NEC标准。
2023-11-12 17:44:43
185
1
原创 51单片机中的AD/DA
AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号 DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转换为模拟信号 AD/DA转换打开了计算机与模拟信号的大门,极大的提高了计算机系统的应用范围,也为模拟信号数字化处理提供了可能。
2023-11-12 16:59:52
404
1
原创 51单片机中的直流电机和PWM
PWM(Pulse Width Modulation)即脉冲宽度调制,在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速、开关电源等领域 PWM重要参数:频率 = 1 / TS 占空比 = TON / TS 精度 = 占空比变化步距例如:利用不同频率的0 1 0 1(不同的周期)来实现等效sin的电压与时间的电压。可以通过PWM的方法来模拟很多计算机中不能直接做出来的参量。高电平表示开,低电平表示关。
2023-11-12 11:43:38
131
1
原创 51单片机中的LCD1602液晶屏
LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字符 显示容量:16×2个字符,每个字符为5*7点阵。
2023-11-12 11:12:35
841
1
原创 51单片机中的DS18B20(热敏电阻)以及单总线
DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出,相比较于模拟温度传感器,具有功能强大、硬件简单、易扩展、抗干扰性强等特点 测温范围:-55°C 到 +125°C 通信接口:1-Wire(单总线) 其它特征:可形成总线结构、内置温度报警功能、可寄生供电。
2023-11-03 20:25:01
297
原创 51单片机中的蜂鸣器
蜂鸣器是一种将电信号转换为声音信号的器件,常用来产生设备的按键音、报警音等提示信号 蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定 无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音。
2023-11-03 16:03:22
229
原创 51单片机中的串行控制寄存器(更新版)
串行口数据缓存寄存器SBUF:用来缓存,如果数据无效内容不变。SMOD0:侦错误检测有效位。当SMOD0=1时检测。REN:允许串行口控制器运行位,1为允许,0为禁止。PCON:电源控制寄存器(不可位寻址)SMOD:波特率加倍选择位,1加倍。两个SM:控制寄存器的模式。TI:发送中断请求标志位。RI:接受中断请求标志位。
2023-10-27 20:21:26
972
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人