摘要: 如何判断主节点真的故障了? 主观下线?客观下线? 哨兵们会定时向主节点发送ping指令,如果能正常收到主节点的响应,那就说明主节点没有故障。 如果一个哨兵,他不能正常收到主节点的响应了,他就会认为该主节点主观下线。 这时他会询问哨兵群,主节点是否真的下线,如果赞成票大于1/2,就会最终认为主节点已经 阅读全文
posted @ 2023-09-23 18:31 小超和你 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 参考链接:https://xiaolincoding.com/redis/cluster/master_slave_replication.html#%E7%AC%AC%E4%B8%80%E6%AC%A1%E5%90%8C%E6%AD%A5 主从第一步同步的过程? 分成三步进行: 1、建立连接,从服 阅读全文
posted @ 2023-09-23 17:41 小超和你 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 先说结论: 1、想要提高应用的性能,可以引入「缓存」来解决 2、引入缓存后,需要考虑缓存和数据库一致性问题,可选的方案有:「更新数据库 + 更新缓存」、「更新数据库 + 删除缓存」 3、更新数据库 + 更新缓存方案,在「并发」场景下无法保证缓存和数据一致性,且存在「缓存资源浪费」和「机器性能浪费」的 阅读全文
posted @ 2023-09-11 21:14 小超和你 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 缓存击穿,缓存穿透,缓存雪崩的原因 缓存击穿:key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。 缓存穿透:key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取 阅读全文
posted @ 2023-09-11 20:11 小超和你 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 分类实现 示意图: 主要分为以下几个步骤: 1. 通过store提取分类数据 2. 通过第一个v-for循环拿到左侧菜单栏的数据 3. 通过第二个v-for循环拿到右侧的详细数据 轮播图 示意图: 主要分为以下几个步骤: 1. 用轮播图组件 2. 写Banner数据接口 3. 利用数据 面板组件封装 阅读全文
posted @ 2023-07-07 16:58 小超和你 阅读(33) 评论(0) 推荐(0) 编辑
摘要: Pinia快速入门 简单来说,每个store都是一个功能模块,整个项目都是由模块构成的。 像一个仓库一样,避免了页面反复使用同一段代码的问题。 首先导入defineStore方法,用来定义store。 defineStore的第一个参数是counter固定的。 第二个参数是一个回调函数,里面写数据( 阅读全文
posted @ 2023-05-15 17:17 小超和你 阅读(291) 评论(0) 推荐(0) 编辑
摘要: Vue3 组合式API 在vue2的版本里,数据和函数是分开维护的,并且调用时还要用到mount或者Create。 但是在vue3的版本里,经过setup的语法糖,能够实现集中式维护,一个功能写的代码能放在一起,且代码量更少了。 使用create-vue创建项目 在工作目录下,用命令行运行npm i 阅读全文
posted @ 2023-05-11 15:22 小超和你 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 文件上传的时候,浏览器将图片以MultipartFile的形式传到服务器,服务器将保存完的图片名响应给浏览器。 文件下载的时候,浏览器收到图片名,再向服务器请求图片资源,服务器以流的形式在浏览器上显示。 所以在浏览器的视角里,上传完图片就能立刻看到效果。 步骤: 1:文件上传 /** * 文件上传 阅读全文
posted @ 2022-09-05 15:34 小超和你 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 步骤:1、创建一个业务异常类,继承RuntimeException /** * 自定义业务异常 */ public class CustomException extends RuntimeException{ public CustomException(String message){ supe 阅读全文
posted @ 2022-09-05 10:45 小超和你 阅读(47) 评论(0) 推荐(0) 编辑
摘要: Mybatis Plus公共字段自动填充,也就是在插入或者更新的时候为指定字段赋予指定的值,使用它的好处就是可以统一对这些字段进行处理,避免了重复代码。 实现步骤: 1、在实体类的属性上加入@TableField注解,指定自动填充的策略 @TableField(fill = FieldFill.IN 阅读全文
posted @ 2022-09-04 16:33 小超和你 阅读(91) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示