自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 收藏
  • 关注

原创 【Redis三种集群方案】

在早期的 Redis 版本中,Redis 是一个​​单机内存数据库​​,所有数据存储在单个节点上。✅ ​​数据冗余(Data Redundancy)​​。

2025-07-10 14:16:05 142

原创 【Redis分布式锁】

分布式锁是一种用于协调分布式系统中多个节点对共享资源访问的同步机制。在单机多线程环境下,我们可以使用Java中的ReentrantLock或等本地锁来控制线程对共享资源的访问。但在分布式系统中,不同的服务/客户端通常运行在独立的JVM进程上,本地锁无法跨JVM实现互斥访问,这时就需要分布式锁。

2025-07-06 16:36:54 654

原创 【redis使用场景——缓存——数据淘汰策略】

【代码】【redis使用场景——缓存——数据淘汰策略】

2025-07-03 16:23:16 348

原创 【Syncthing】

启用 ​​版本控制​​(回收站文件版本控制)(强烈推荐)

2025-07-02 15:26:00 175

原创 【SpringSecurity鉴权】

*** 验证用户是否具备某权限* @param permission 权限字符串* @return 用户是否具备某权限*//*** 验证用户是否不具备某权限,与 hasPermi逻辑相反* @param permission 权限字符串* @return 用户是否不具备某权限*/= true;/*** 验证用户是否具有以下任意一个权限* @param permissions 以 PERMISSION_DELIMETER 为分隔符的权限列表。

2025-06-28 22:26:06 200

原创 【redis安装与配置】

通过本机公网,需要配置。

2025-06-28 09:30:00 143

原创 【通过 emit() 触发的​​自定义事件】

[TOC](通过 emit() 触发的​​自定义事件​​)

2025-06-27 09:48:56 118

原创 【redis使用场景——缓存——数据过期策略 】

当客户端尝试访问一个 key 时,Redis 会先检查该 key 是否设置了过期时间,如果已过期则立即删除并返回空。Redis 会定期(默认每秒 10 次)随机抽取一些设置了过期时间的 key,检查它们是否过期,如果过期就删除。如果发现超过 25% 的键已过期,则立即再抽取 20 个进行检查(循环直到低于 25%)Redis 每次事件循环(event loop)都会执行快速过期检查。,对不常访问的 key,即使过期也可能长时间占用内存。从设置了过期时间的键中随机抽取 20 个进行检查。

2025-06-26 16:48:16 494

原创 【Redis持久化】

Redis作为内存数据库,其持久化机制是保证数据安全性的关键。RDB(Redis Database)和AOF。

2025-06-26 16:26:39 726

原创 【useRoute 和 useRouter区别】

【代码】【useRoute 和 useRouter区别】

2025-06-26 14:38:31 182

原创 【termux安装appium】

【代码】【termux安装appium】

2025-06-25 13:21:53 183

原创 【Java迭代器(Iterator)】

【代码】【Java迭代器(Iterator)】

2025-06-25 13:10:17 201

原创 【position】

若希望 .layout_main 相对于某个父容器定位(而非 body),需为父容器设置 position: relative。

2025-06-25 11:29:07 151

原创 【delphi7安装】

将BIN目录下的所有文件复制到delphi7的BIN目录。运行AUTORUN.EXE。勾选后安装完成重启电脑。

2025-06-25 11:25:03 132

原创 【docker部署ollama】

【代码】【docker部署ollama】

2025-06-25 10:13:06 205

原创 【英雄杀】

2025-06-25 10:11:06 84

原创 【Flexbox 布局】

将 flex 容器内的子项均匀分布,​​。

2025-06-25 10:07:21 126

原创 【padding & margin】

【代码】【padding & margin】

2025-06-25 10:06:44 71

原创 【redis使用场景——缓存——双写一致性】

数据库 → Binlog → 消息队列 → 缓存更新Worker → Redis。​​核心思想​​:通过读写锁控制并发访问,读操作加读锁,写操作加写锁。在更新数据库前后各删除一次缓存,第二次删除采用延迟方式(​​考虑到。双写一致性指的是当修改数据库数据时,也需要同步更新缓存数据,最终结果:MySQL=80,Redis=100,数据不一致。​​核心思想​​:通过消息队列(MQ)保证缓存操作最终执行。线程A更新数据库为100,开始更新Redis时出现卡顿。线程B更新数据库为80,并成功更新Redis为80。

2025-06-22 16:37:19 542

原创 【自定义 rem 方案】

const scale = document.documentElement.clientWidth / 1920 // 设计稿宽度。// 窗口大小变化时重置 rem。// 设置 rem 基准值。自定义 rem 方案。

2025-06-19 08:56:05 175

原创 【Java树形菜单系统设计与实现】

【代码】【Java树形菜单系统设计与实现】

2025-06-17 11:11:33 161

原创 【redis——缓存雪崩(Cache Avalanche)】

缓存雪崩是指在同一时间段内,大量缓存数据同时过期或失效,导致所有请求直接打到数据库上,造成数据库瞬时压力过大甚至崩溃的现象。

2025-06-14 21:08:45 502

原创 【创建数据库】

【代码】【创建数据库】

2025-06-13 16:15:12 106

原创 【redis——缓存击穿】

​​核心思想​​:使用分布式锁保证只有一个线程重建缓存。​​核心思想​​:物理永不过期,通过逻辑字段控制有效性。适用场景​​:极高热度的静态数据(如商品基础信息)​​:通过异步线程更新缓存,避免瞬时负载。适用场景​​:写操作较少的动态数据。缓存击穿是指​​某个热点key在。,同时有大量请求涌入,直接。访问数据库​​的现象。查询数据库并全量写入。立即返回当前过期数据。

2025-06-13 14:45:19 845

原创 【redis——缓存穿透】

布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,由Burton Howard Bloom于1970年提出,用于快速判断一个元素是否可能存在于集合中。当数据库查询为空时,仍然将空结果(如"NULL"或空对象)缓存起来,并设置较短的过期时间。布隆过滤器的核心思想是​​通过多个哈希函数和一个位数组来表示。​​:时间复杂度为O(k),k为哈希函数数量。​​:仅需存储二进制位,无需保存元素本身。​​:标准布隆过滤器不支持删除操作。占用位: 2,5,8。检测位: 2,5,8。

2025-06-13 13:54:33 1108

原创 【终止 Windows 上占用 8080 端口的 Java 项目】

【代码】【终止 Windows 上占用 8080 端口的 Java 项目】

2025-06-05 14:59:15 186

原创 【LEFT JOIN 的作用及与其他关联方式的区别】

保留左表(主表)中的所有记录​​,无论右表(从表)中是否有匹配的记录。当右表没有匹配时,结果中右表的列将显示为 NULL。如果一边没有匹配,整行都不会出现在结果中。​​结果​​:左表没有匹配时显示NULL。​​结果​​:没有匹配的部分显示NULL。保留右表(第二个表)中的所有记录。只返回两表中匹配的行。

2025-06-04 14:37:46 151

转载 【jcifs访问xp的共享文件】

报异常: jcifs.smb.SmbAuthException: Logon failure: unknown user name or bad password.工具->文件夹选项->查看-> 去掉【简单文件夹共享(推荐)】的选择。解决的方法是,配置共享机器的共享方式为高级共享。jcifs访问xp的共享文件。

2025-05-18 10:33:44 39

原创 【登录流程图】

13. 存储LoginUser(login_tokens:uuid)抛出UserPasswordNotMatchException。抛出BadCredentialsException。抛出UserNotExistsException。11. 返回Authentication。17. 响应Token(200)16. 返回token。

2025-05-04 16:18:52 804

原创 【在Spring Boot中集成Redis】

【代码】【在Spring Boot中集成Redis】

2025-05-03 15:55:01 586

原创 【香橙派挂载sd卡】

【代码】【香橙派挂载sd卡】

2025-05-03 01:35:48 265

原创 【飞牛nas安装cloudflare】

【代码】【飞牛nas安装cloudflare】

2025-04-28 21:04:29 435

原创 【飞牛nas安装cloudflare】

【代码】【飞牛nas安装cloudflare】

2025-04-28 21:01:19 187

原创 【UserDetailsService】

如图所示,Authentication Filter将身份验证请求委托给AuthenticationManager,后者使用AuthenticationProvider处理身份验证。UserDetails接口主要用于封装从数据库中加载的用户详细信息。这些属性包括用户名、密码、权限、账户状态等,确保用户信息的安全性和完整性‌。UserDetails是Spring Security框架中的一个核心接口,用于表示用户的详细信息。来实现用户管理职责。它的主要职责是根据用户名从内存中或数据库中查找用户。

2025-04-28 19:49:13 397

原创 【nvm管理多个 Node.js 版本】

【代码】【nvm管理多个 Node.js 版本】

2025-04-27 09:21:57 260

原创 【vscode编辑器配置】

【代码】【vscode编辑器配置】

2025-03-09 09:43:07 234

原创 【使用vite创建echarts项目】

让 Vite 自动按需加载 Element Plus 组件,可以使用 unplugin-vue-components 和 unplugin-auto-import。你可以通过简单的类名快速为 HTML 元素添加各种常见的动画效果,如淡入、淡出、旋转、缩放等,而无需编写复杂的 CSS 动画代码。在 src 目录下创建一个 router 文件夹,并在里面创建 index.ts 文件。是推荐的状态管理库,替代 Vuex,提供更简洁的 API 和更好的。在 vite.config.ts 里配置全局 SCSS。

2025-03-09 08:13:38 464

原创 【springboot 连接sqlserver2008】

原文链接:https://blog.youkuaiyun.com/weixin_44296645/article/details/136386281。application.yml配置,hikari要配置connection-test-query。报错:“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全”后面换了jtds连接成功了。

2025-02-26 11:47:36 310

原创 【LEFT JOIN 和 INNER JOIN】

赵六 的 BaseTypeId 是 NULL,因此 LEFT JOIN 会返回 NULL 值对应 BaseType 和 AppraisalBase 字段。赵六 不会出现在结果中,因为他没有 BaseTypeId,在 AppraisalBases 表中没有对应的记录。在执行 INNER JOIN 时,只会返回那些 BaseTypeId 有匹配的记录。其他用户的记录会正常显示,因为它们在 AppraisalBases 表中有匹配。

2025-02-19 09:44:16 322

原创 【数据库表结构】

【代码】【数据库表结构】

2025-02-06 14:49:40 395

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除