2021年8月31日

算法练习(八):三色排序问题

摘要: 问题:给定一个无序数组,这个数组中只包含0,1,2三种数字,对这个数组进行排序。 解题思路:要充分利用题给的条件:只含有0或1或2可以这样想:0应该往前放,1应该不变,2应该往后扔。 定义三个变量begin指向首下标,end指向尾下标,current最开始指向首下标。 当current对应数组值是0 阅读全文

posted @ 2021-08-31 17:26 yssd 阅读(246) 评论(0) 推荐(0)

2021年8月29日

Redis学习(四):Redis的数据过期策略与LRU实现

摘要: 删除策略 Redis的数据过期删除策略采用:定时删除和惰性删除两种策略 定时删除策略:Redis启用一个定时器监视所有的key,判断key是否过期,过期的话就删除。这种策略可以保证过期的key最终被删除,但是也存在严重的缺点:每次遍历都遍历内存中所有的key,非常消耗CPU资源,并且当key已过期, 阅读全文

posted @ 2021-08-29 23:14 yssd 阅读(209) 评论(0) 推荐(0)

Zookeeper学习(三):选举算法和流程

摘要: FastLeaderElection 目前有5台服务器,每台服务器均没有数据,它们的编号分别是1,2,3,4,5;按编号依次启动,它们的选举流程如下: 服务器1启动,给自己投票,然后发投票信息,由于其他机器还没有启动所以它收不到任何反馈信息,服务器1的状态一直属于Looking。 服务器2启动,给自 阅读全文

posted @ 2021-08-29 12:20 yssd 阅读(147) 评论(0) 推荐(0)

Zookeeper学习(二):ZAB协议

摘要: ZAB协议包含两种模式: 崩溃恢复模式 消息广播模式 崩溃恢复模式: Zookeeper集群服务刚刚启动 Leader宕机 Leader重启 网络故障导致不存在过半服务器与Leader保持正常通信 当进入崩溃恢复模式时,所有服务器参与重新选举,首先选举产生新的Leader,然后集群中Follower 阅读全文

posted @ 2021-08-29 12:03 yssd 阅读(52) 评论(0) 推荐(0)

Zookeeper学习(一):Zookeeper优缺点

摘要: zookeeper不是为高可用设计的 由于要跨机房容灾,很多系统实际上是需要跨机房部署的。出于性价比的考虑,通常会让多个机房同时工作,而不会搭建N倍冗余。也就是说单个机房肯定撑不住全流量。由于zookeeper集群只能有一个master,因此一旦机房之间出现故障,zookeeper master就只 阅读全文

posted @ 2021-08-29 11:45 yssd 阅读(753) 评论(0) 推荐(0)

2021年8月28日

快速排序算法

摘要: 基本思想 本文以从小到大排序的方式进行讲解。 快速排序的基本思想是任取待排序序列的一个元素作为中心元素(可以用第一个,最后一个,中间的任意一个),称之为枢轴元素,pivot。 1)将数组中所有比pivot小的放左边; 2)将数组中所有比pivot大的放右边; 3)形成左右两个子表 4)然后对左右两个 阅读全文

posted @ 2021-08-28 15:43 yssd 阅读(1008) 评论(0) 推荐(0)

2021年8月27日

RocketMQ与Kafka的区别

摘要: RocketMQ和Kafka区别 1)适用场景 Kafka适合日志处理 RocketMQ适合业务处理 结论:平手,根据具体业务定夺 2)性能 kafka单机写入TPS号称在百万条/秒; RocketMQ大约在10万条/秒; 结论:追求性能的话,kafka单机性能更高 3)可靠性 RocketMQ支持 阅读全文

posted @ 2021-08-27 19:53 yssd 阅读(6389) 评论(0) 推荐(1)

Redis学习(四):缓存常见问题

摘要: 缓存常见问题 缓存击穿 概念:对于一些设置了过期的key,如果这个key可能会在某些时间点被超高并发地访问,是一个热点数据 原因:缓存在某个时间点过期的时候,恰好在这个时间点对这个key有大量的并发请求过来,该key没有命中,大量请求穿透到数据库服务器。 解决方案: 1)使用互斥锁;在缓存失效的时候 阅读全文

posted @ 2021-08-27 10:51 yssd 阅读(84) 评论(0) 推荐(0)

2021年8月25日

算法练习(八):青蛙跳台阶问题

摘要: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:2 示例 2: 输入:n = 7 输出:21 示例 3: 输 阅读全文

posted @ 2021-08-25 20:59 yssd 阅读(343) 评论(0) 推荐(0)

Redis学习(三):Redis分布式缓存与数据库的数据一致性

摘要: 概括:缓存是通过牺牲强一致性来提高性能的。 这个是由CAP理论决定的。缓存系统适用的场景就是非强一致性的场景,它属于CAP中的AP。 强一致性还是弱一致性? CAP理论,指的是在一个分布式系统中,只能满足其中两项,三者不可兼得。 CAP理论作为分布式系统的基础理论,它描述的是一个分布式系统在以下三个 阅读全文

posted @ 2021-08-25 11:18 yssd 阅读(635) 评论(0) 推荐(0)

导航