摘要: 1 哨兵模式的缺陷 在哨兵模式中,仍然只有一个Master节点。当并发写请求较大时,哨兵模式并不能缓解写压力。 我们知道只有主节点才具有写能力,那如果在一个集群中,能够配置多个主节点,是不是就可以缓解写压力了呢? 答:是的。这个就是redis-cluster集群模式。 2 Redis-cluster 阅读全文
posted @ 2021-03-12 12:20 Mistolte 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 缓存雪崩 缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。和缓存击穿不同的是, 缓存击穿指并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。 解决方法 缓存数据的过期时间设置随机,防止同一时间大量数据过期现象发生。 如果缓存数据库 阅读全文
posted @ 2021-03-07 22:33 Mistolte 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 一 分布式锁的演进 使用setnx命令,在SpringBoot中为setIfAbsent,最简单的代码如下: 当然上述代码会存在问题,如A服务在执行到中间时抛异常,则不能释放这个锁,加上try-catch-finally,如下: 但是如果在中间的时候直接断掉,则仍然不能释放锁,加上锁的自动释放时间, 阅读全文
posted @ 2021-03-06 17:01 Mistolte 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 1 Hash算法 HashMap里的k-v值如何计算得到索引:先看算法如下,以jdk1.8为例: int index = hash & (arrays.length-1); hash为key的HashCode计算得到的,为什么HashMap的数组长度是2的整数幂呢,因为,以初始长度为16为例,16- 阅读全文
posted @ 2021-03-05 17:51 Mistolte 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 1、添加pom依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.10</version> </de 阅读全文
posted @ 2021-02-23 17:34 Mistolte 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 一、从HTTP协议开始引入 HTTP协议本身是无状态的,这与HTTP协议本来的目的是相符的,客户端只需要简单的向服务器请求下载某些文件,无论是客户端还是服务器都没有必要纪录彼此过去的行为,每一次请求之间都是独立的,好比一个顾客和一个自动售货机或者一个普通的(非会员制)大卖场之间的关系一样。 二、Se 阅读全文
posted @ 2021-01-29 10:43 Mistolte 阅读(78) 评论(0) 推荐(0) 编辑
摘要: @RequestParam,@PathParam,@PathVariable等注解区别 转载自:https://blog.csdn.net/u011410529/article/details/66974974 @RequestParam 和 @PathVariable 注解是用于从request中 阅读全文
posted @ 2021-01-18 10:32 Mistolte 阅读(542) 评论(0) 推荐(1) 编辑
摘要: 1 递归到动态规划 假设有排成一行的N个位置,记为1~N,N -定大于或等于2,开始时机器人在其中的M位置上(M -定是1~N中的一个) 如果机器,人来到1位置,那么下一步只能往右来到2位置; 如果机器人来到N位置,那么下一步只能往左来到N-1位置; 如果机器人来到中间位置,那么下 - -步可以往左 阅读全文
posted @ 2021-01-10 22:12 Mistolte 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 1 汉诺塔问题 任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘,如何从左移到右边 这道题直接上代码: public static void hanoi(int n) { if(n>0){ func(n, "left", "right", "mid"); } } // 1~i 阅读全文
posted @ 2021-01-10 09:37 Mistolte 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 1 先序、中序、后序 1.1 递归 递归方式实现二叉树的先序、中序、后序遍历 1)理解递归序 2)先序、中序、后序都可以在递归序的基础上加工出来 3)第一次到达一个节点就打印就是先序、第二次打印即中序、第三次即后序 1.2 非递归 利用栈去解决: 1.2.1 先序:1)先压入头结点到栈里; 2)弹出 阅读全文
posted @ 2021-01-02 16:55 Mistolte 阅读(140) 评论(0) 推荐(0) 编辑