摘要:
JUC并发包 CountDownLatch倒计时器: 让一些线程阻塞直到另一些线程完成一系统操作后才被唤醒。一个 CountDownLatch 用给定的计数初始化。await() 方法阻塞,直到由于countDown() 方法的调用而导致当前计数达到零,之后所有等待线程被释放,并且任何后续的 awa 阅读全文
posted @ 2021-04-06 20:03
我是廖志伟
阅读(12)
评论(0)
推荐(0)
摘要:
对于CPU密集型任务,由于CPU密集型任务的性质,导致CPU的使用率很高,如果线程池中的核心线程数量过多,会增加上下文切换的次数,带来额外的开销。因此,考虑到CPU密集型任务因为某些原因而暂停,这个时候有额外的线程能确保CPU这个时刻不会浪费,还可以增加一个CPU上下文切换。一般情况下:线程池的核心 阅读全文
posted @ 2021-04-06 20:00
我是廖志伟
阅读(22)
评论(0)
推荐(0)
摘要:
第一种拒绝策略:AbortPolicy:超出最大线程数,直接抛出RejectedExecutionException异常阻止系统正常运行。可以感知到任务被拒绝了,于是你便可以根据业务逻辑选择重试或者放弃提交等策略。 第二种拒绝策略:该策略既不会抛弃任务,也不会抛出异常,而是将某些任务回退到调用者,相 阅读全文
posted @ 2021-04-06 19:59
我是廖志伟
阅读(15)
评论(0)
推荐(0)
摘要:
底层在创建线程池的时候有七个参数:核心线程数,同时执行的最大线程数,多余线程存活时间,单位时间秒,任务队列,默认线程工厂,拒绝策略 corePoolSize:核心线程数maximumPoolsize:同时执行的最大线程数keepAliveTime:多余线程存活时间,当前线程池数量超过核心线程数时,当 阅读全文
posted @ 2021-04-06 19:57
我是廖志伟
阅读(19)
评论(0)
推荐(0)
摘要:
线程池实现原理 线程池就是控制运行的线程数量,处理过程中将任务放到队列,然后在线程创建后启动这些任务,如果线程数量超出了最大数量就排队等候,等其他线程执行完毕再从队列中取出任务执行。线程池相当于银行网点,常驻核心数相当于今日当值窗口,线程池能够同时执行的最大线程数相当于银行所有的窗口,任务队列相当于 阅读全文
posted @ 2021-04-06 19:55
我是廖志伟
阅读(20)
评论(0)
推荐(0)
摘要:
如何保证 Redis 高并发、高可用?Redis 的主从复制原理能介绍一下么?Redis 的哨兵原理能介绍一下么?主从架构下的数据部分复制? 考虑如何用 redis 来加多台机器,保证 redis 是高并发的,如何让 redis 保证自己不是挂掉以后就直接死掉了,即 redis 高可用? 高并发 单 阅读全文
posted @ 2021-04-06 19:46
我是廖志伟
阅读(9)
评论(0)
推荐(0)
摘要:
布隆过滤器? 需求: ①、原本有10亿个号码,现在又来了10万个号码,要快速准确判断这10万个号码是否在10亿个号码库中? 解决办法一:将10亿个号码存入数据库中,进行数据库查询,准确性有了,但是速度会比较慢。 解决办法二:将10亿号码放入内存中,比如Redis缓存中,这里我们算一下占用内存大小:1 阅读全文
posted @ 2021-04-06 18:56
我是廖志伟
阅读(12)
评论(0)
推荐(0)
摘要:
数据类型的底层数据结构sds? 每次在Redis数据库中创建一个键值对时,至少会创建两个对象,一个是键对象,一个是值对象,而Redis中的每个对象都是由 redisObject对象,对象的属性有type类型,encoding编码,*ptr指向底层数据结构的指针,refcount引用计数,lru记录最 阅读全文
posted @ 2021-04-06 18:55
我是廖志伟
阅读(6)
评论(0)
推荐(0)
摘要:
数据类型的应用场景? 字符串string 可以通过set key value 实现单值缓存 可以通过setnx product:10001 true 实现分布式锁,返回1表示获取锁成功,返回0表示获取锁失败,这个值已经被设置过 可以通过incr acticle:readcount{文章id} 实现计 阅读全文
posted @ 2021-04-06 18:54
我是廖志伟
阅读(9)
评论(0)
推荐(0)
摘要:
生产环境中的 Redis 是怎么部署的? Redis cluster,10 台机器,5 台机器部署了 Redis 主实例,另外 5 台机器部署了 Redis 的从实例,每个主实例挂了一个从实例,5 个节点对外提供读写服务,每个节点的读写高峰 QPS 可能可以达到每秒 5 万,5 台机器最多是 25 阅读全文
posted @ 2021-04-06 18:53
我是廖志伟
阅读(15)
评论(0)
推荐(0)
摘要:
Redis 的并发竞争问题是什么?如何解决这个问题?了解 Redis 事务的 CAS 方案吗? 多客户端同时并发写一个 key,可能本来应该先到的数据后到了,导致数据版本错了;或者是多客户端同时获取一个 key,修改值之后再写回去,只要顺序错了,数据就错了。 CAS 类的乐观锁方案:某个时刻,多个系 阅读全文
posted @ 2021-04-06 18:53
我是廖志伟
阅读(7)
评论(0)
推荐(0)
摘要:
Redis 集群模式的工作原理能说一下么?集群元数据的维护:集中式、Gossip 协议?在集群模式下,Redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?如何动态增加和删除一个节点?Redis cluster 的高可用与主备切换原理? Redis 集群模式的工 阅读全文
posted @ 2021-04-06 18:52
我是廖志伟
阅读(16)
评论(0)
推荐(0)
摘要:
Redis 的持久化有哪几种方式? 持久化主要是做灾难恢复、数据恢复,高可用。比如你 redis 整个挂了,然后 redis 就不可用了,我们要做的事情就是让 redis 变得可用,尽快变得可用。重启 redis,尽快让它堆外提供服务,如果没做数据备份,这时候 redis 启动了,也不可用啊,数据都 阅读全文
posted @ 2021-04-06 10:36
我是廖志伟
阅读(12)
评论(0)
推荐(0)
浙公网安备 33010602011771号