2019-10-14 09:58:46
1. 其实我会看工作年限,如果您工作了五年之后,我觉得基础知识更重要,技能广度可以慢慢培养;如果工作了七八年了,还是需要有一些技术的视野的2. 要多思考,多看出,了解高并发的基础知识,然后考虑如果自己的业务到了更高的量级要如何解决
2019-10-14 15:42:49
2019-09-30 09:08:43
这就要你在平时的时候多了解维护系统的数据了,数据对于性能优化很重要
2019-09-30 09:34:53
2019-10-08 16:33:38
是说slab class 5 占用了绝大多数的空间,那么slab class 6最多只能分配到100M,可是我们的缓存的用户认证信息的数据量远大于100M,而认证信息的数据大小又大于class 5的大小,没法存储到slab class 5里面,所以就会产生剔除了
2019-10-09 08:59:58
2019-09-30 07:33:44
是的,没错~
2019-09-30 09:34:15
2019-10-04 21:52:17
如果是我的话,我会更关注基础知识,你可以没有用过,但是基本的原理要了解了~
2019-10-05 16:23:11
2019-10-02 09:58:23
剧透一下,在面试现场的第二期会讲到哈~
2019-10-03 07:57:11
2020-10-26 09:10:21
2019-09-30 11:25:08
倒也不分工程师和架构师,只是在面试介绍项目经历的时候可以多突出你的贡献,比如你解决了什么问题,如何优化了性能,设计了那些方案,突出做的事情的难点,以及你的解决思路。我可以在后面面试现场里面讲讲这个:)
2019-09-30 12:25:29
2019-10-15 12:42:45
1. 多问原理2. 考察解决问题的能力,比如你遇到什么问题,问问解决的思路3. 当场写代码
2019-10-16 08:08:04
2019-10-04 08:52:32
问题导向是应该的,遇到问题要深挖,找到根本原因,其中肯定会了解一些原理。但是问题毕竟不多,可以多关注一些你用到组件的基本原理
2019-10-05 16:36:52
2019-10-09 09:06:20
额 加油💪
2019-10-09 14:03:27
2019-09-30 13:07:22
2019-09-30 09:42:40
跳表……
2019-09-30 11:50:10
2021-05-01 22:50:13
2019-12-02 20:14:41
赞👍
2019-12-03 16:55:29
2019-10-07 11:20:01
👍
2019-10-08 07:44:02
2020-04-16 16:50:13
2020-04-21 20:40:49
2019-12-11 14:35:27
技多不压身~
2019-12-12 10:04:59
2019-11-24 23:04:05
2019-09-30 17:52:09
是剔除相同slab class下的。例子里的的意思是一共分配了2g的空间,但是有1.9g给了slab class 5,剩余100m给了其他的slab class,那么300m的意思是slab class 5的1.9g只用了200m,其他的slab class的100m都占满了,这样加起来是300m
2019-10-02 09:31:10
精选留言
2019-10-14 09:58:46
首先,实现原理:基于数组和链表,JDK8以后也会在特定情况下转为红黑树。
以对象的Hash值确定数据所在下标,如果下标里已经有数据,则用链表存储。在链表超过8时转化为红黑树。
转红黑树的目的是:红黑树的查找时间复杂度是logn,而链表是n,红黑树保证了在同一个下标下数据元素过多时候的高性能。
为什么在8之后才转红黑树:因为转红黑树,以及维护红黑树的左旋右旋需要额外的性能开销。而在数据量较小的时候,优化时间复杂度意义不明显。(例如:二分查找在数据量小的时候,性能提升不大)自认为这一条回答也算是红黑树和链表的优劣势。
HashMap不是线程安全的,所以有ConcurrentHashMap。
ConcurrentHashMap的线程安全,是使用了加锁的方式。
1.8之后,对加锁的数据粒度更加细化。每次只锁一个node。所以1.8以后的ConcurrentHashMap在并发下性能大幅度提高。
关于redis的问题,说实话,我觉得跳表 和 红黑树,我觉得都是可以的。因为核心目的是高性能,这两个在查找的时候性能都不错。硬要说的话红黑树性能更高(看测评是更高,理论上讲实际差距不是特别大),但是同时也更耗费内存(因为跳表的内存消耗是可控的)。而现在2019年这个时间点,为了用户体验,更多的还是以空间换时间,所以,我个人认为,红黑树可能更合适。
然后是想请教的面试问题:
1,请问老师如何看待基础与技能广度的重要性对比?就是说,主流的分布式框架我掌握的并不全,但是我觉得我数据结构,算法,Java这些的基础比同期其他人都要好,我认为我可以很快掌握公司所需的技术。您会接受我这样的人嘛?
2,现在的公司,面试动不动就需要你有高并发经验。但是,没有高并发的经验就无法进入有高并发场景的公司。(一个先有鸡还是先有蛋的问题)关于这种现象,您怎么看?有没有什么建议?
2019-09-30 09:08:43
2019-10-08 16:33:38
2019-09-30 07:33:44
2019-10-04 21:52:17
2019-10-02 09:58:23
2020-10-26 09:10:21
2019-09-30 11:25:08
2019-10-15 12:42:45
2019-10-04 08:52:32
2019-10-09 09:06:20
2019-09-30 13:07:22
2019-09-30 09:42:40
2021-05-01 22:50:13
2019-12-02 20:14:41
zsl跳势 区间断差找更快。 实现简单,构建策略灵活(响应速度与开销上方便权衡)
再多说一句,sortedset 可不止是跳表, 这里可以继续挖坑。
2019-10-07 11:20:01
2020-04-16 16:50:13
2019-12-11 14:35:27
2019-11-24 23:04:05
2019-09-30 17:52:09
从描述上看,slab class没有足够空间,会查找更大的,但没提什么时候会剔除缓存,剔除哪些,猜想是剔除相同slab class的?
前面说单节点2G用了300M,后面又说slab class 5占了2G中的1.9G,莫非此2G非彼2G?
看起来像是内存不够用导致频繁剔除缓存,只不过memcached的机制会剔除相同slab class造成了这种现象?