- 博客(23)
- 收藏
- 关注
原创 Redis如何做到重启数据不丢失?
AOF的含义是追加文件,当redis操作写命令的时候,都会存储这个文件中,当redis实例宕机恢复数据的时候,会从这个文件中再次执行一遍命令来恢复数据。RDB是一个快照文件,它是把redis内存存储的数据写到磁盘上,当redis实例宕机恢复数据的时候,方便从RDB的快照文件中恢复数据。在Redis中提供了两种数据持久化的方式:1、RDB 2、AOF。
2024-07-15 21:49:18
528
原创 redis集群方案-集群有什么作用
分片集群主要解决的是,海量数据存储的问题,集群中有多个master,每个master保存不同数据,并且还可以给每个master设置多个slave节点,就可以继续增大集群的高并发能力。同时每个master之间通过ping监测彼此健康状态,就类似于哨兵模式了。当客户端请求可以访问集群任意节点,最终都会被转发到正确节点。
2024-07-13 21:53:46
484
原创 redis集群方案-主从同步
在Redis中提供的集群方案总共有三种:主从复制、哨兵模 式、Redis分片集群。单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,可以搭建主从集群,实现读写分离。一般都是一主多从,主节点负责写数据,从节点负责读数据,主节点写入数据之后,需要把数据同步到从节点中。
2024-07-11 21:53:16
182
原创 缓存的雪崩及解决方案
缓存雪崩意思是设置缓存时采用了相同的过期时间,导致缓存在某一时刻同时失效,请求全部转发到DB,DB 瞬时压力过重雪崩。与缓存击穿的区别:雪崩是很多key,击穿是某一个key缓存。
2024-07-10 21:20:01
589
原创 缓存的击穿及解决方案
缓存击穿的意思是对于设置了过期时间的key,缓存在某个时间点过期的时 候,恰好这时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端 DB 加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把 DB 压垮。
2024-07-09 23:31:46
763
原创 redis如何与mysql数据保持一致?
redis如何与mysql数据保持一致?同步双写:cache aside pattern,读:先读缓存再读数据库,一个缓存的过期时间,实现起来简单好用极限情况还会有数据不一致的风险。CAP定理:c一致性a可用性p分区容错性,cp或者是ap异步双写:基于消息队列实现,写:生产者:先更新数据库,向队列发消息,消费者:监听消息,收到消息更新缓存,解耦,弱耦合基于binLog:caneL优点:完全解耦,缺点:门槛高,废程序员,监听binlog,解析变更数据,写入redis。延迟双删:删除缓存更新数据库隔一
2024-07-08 21:22:47
483
原创 redis缓存的穿透及解决的方案
缓存穿透是指查询一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到DB去查询,可能导致DB挂掉。这种情况大概率是遭到了攻击。
2024-07-07 21:06:35
566
原创 服务注册中心原理
在大型微服务项目中,服务提供者的数量会非常多,为了管理这些服务就引入了注册中心的概念。● 调用者可以从注册中心订阅想要的服务,获取服务对应的实例列表(1个服务可能多实例部署)● 当注册中心长时间收不到提供者的心跳时,会认为该实例宕机,将其从服务的实例列表中剔除。● 当服务有新实例启动时,会发送注册服务请求,其信息会被记录在注册中心的服务实例列表。● 服务启动时就会注册自己的服务信息(服务名、IP、端口)到注册中心。● 当注册中心服务列表变更时,会主动通知微服务,更新本地服务列表。
2024-07-06 21:40:33
555
原创 断路器的工作原理
断路器在工作时有三种状态,分别是closed状态,open状态,half-open状态。系统初始状态下,断路器处于关闭状态。如果一段时间内出现大量错误,达到预设的阈值,断路器就会切换到打开状态。当错误率超过预设的阈值后,断路器就会切换到打开状态,此时所有的请求都会立即返回失败,而不会发送给服务提供者。经过一段时间后,断路器会尝试进入半开状态,在此状态下,允许有限数量的请求通过断路器到达服务提供者。反复进行,断路器会在不同的状态间切换,根据服务的健康状况动态调整策略,从而实现对故障的快速响应和恢复。
2024-07-04 10:10:03
482
原创 AT的工作原理
定义:AT对业务代码完全无侵入性,使用非常简单,改造成本低。我们只需要关注自己的业务SQL,Seata会通过分析我们业务SQL,反向生成回滚数据。
2024-07-02 22:55:59
367
1
原创 XA的工作原理
但是执行完,你不要提交,你就把你做的事务放在那里,把执行的结果告知TC,就绪就代表这事务执行成功了,这个时候TC事务协调者就会根据数据库响应的结果而去判断下一阶段要干什么。定义:XA 规范 是 X/Open 组织定义的分布式事务处理(DTP【分布式事务领域最早的一个标准】,Distributed Transaction Processing)标准,XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。
2024-07-01 22:57:52
391
原创 阿里云短信验证码服务--复用性极强--拉下来直接用
步骤1.初始化配置对象 com.aliyun.teaopenapi.models.Config。Config 对象存放 AccessKeyId、AccessKeySecret 、endpoint 等配置,Endpoint 如示例中的 dysmsapi.aliyuncs.com。// 您的AccessKey ID// 您的AccessKey Secret// 访问的域名2.实例化一个客户端,从 com.aliyun.dysmsapi20170525.Client 类生成对象 client。
2024-06-14 19:51:45
597
原创 mybatis sql报错记录: Encountered “<EOF>“
xml文件中某个标签不完整或者是if test=" "为空导致的,去找xml文件中的sql语句即可。
2024-06-13 13:58:12
220
原创 工具类--生成子级菜单或兄弟菜单或去0
在开发网站系统时,经常用到通过id编号来判断是父级菜单还是子级菜单,这时候我们经常用到这样一个工具类,去0来判断是否是父级菜单还有生成子级菜单或者父级菜单。这样的一个工具类我们写一次以后直接拉过来直接使用。
2024-06-12 16:06:46
427
原创 微信开发者工具-微信登录小程序出现登录弹弹窗
如果这个依赖没有用,直接删除这个依赖,然后刷新maven,加载依赖即可。推荐使用 mvn clean package -DskipTests 去刷新依赖。方法二:检查后端是不是导入了一下依赖(security)的依赖。方法一:清除全部缓存,刷新,重新登录。
2024-06-12 15:57:05
265
原创 【oracle安装问题】[INS-13001]此操作系统不支持Oracle数据库。安装程序将不在系统上执行先决条件检查和[INS-35180] 无法检查可用内存
Oracle精准解决bug
2024-05-19 11:52:55
997
1
原创 MySQL 5.7和MySQL 8在自增(AUTO_INCREMENT)属性关键区别
现在,即使数据库服务器异常崩溃或重启,自增计数器的当前值也会被持久化地保存在磁盘上,而不是仅仅保存在内存中。这种改进意味着,在MySQL 8中,无论服务器是正常关闭还是异常崩溃,自增计数器的值都会在重启后得到恢复,从而确保自增主键的值保持连续。当数据库服务器正常关闭时,该计数器的当前值会被写入到InnoDB的系统表空间中,以便在服务器重启后恢复。但是,如果服务器异常崩溃或由于其他原因没有正常关闭,那么内存中的自增计数器值可能会丢失,导致在服务器重启后自增值从一个较低的值开始。
2024-05-12 13:43:23
939
原创 day03 正在LeetCode-ing~
59.给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]**LeetCode:59.螺旋矩阵II。
2024-05-06 22:43:02
112
原创 day02正在LeetCode-ing~
209.给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的。排序的整数数组 arr,返回 每个数字的平方组成的新数组,要求也。如果不存在符合条件的子数组,返回 -1。【方案:滑动窗口,双指针】
2024-05-05 22:21:22
223
1
原创 day01正在LeetCode-ing~
给你一个数组 arr 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。元素和一个目标值 target,写一个函数搜索 arr中的target,如果目标值存在返回下标,否则返回-1。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。注意:区间左闭右开/左闭右闭的选择,我选择的是左闭右闭。的(升序)整型数组 arr 并且数组中。704:给定一个n个元素。
2024-05-04 15:56:28
292
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人