0%

分布式架构下,中间件往往需要具有高并发、高可用、高性能等特性。Nginx、Tomcat等Web服务器,依靠多线程模型来实现高并发,而Redis则是仅靠单线程就支撑起了近10W的并发量,这不经让我们感到好奇,为什么Redis能够做到这一点呢?本文将从Redis的线程模型、事件处理模型、网络模型、持久化模型等方面来分析Redis的高并发能力。

阅读全文 »

这几日打算再优化优化博客,但有的功能就是思来想去无从下手,一看官网竟然有插件实现了想要的功能,遂将从前自己实现的功能都查了查,发现都有对应实现!想想已然被我改的面目全非的布局、配置文件,决定重新构建一下博客环境,并尽可能使用插件实现功能。当然,日志是必要的,不然但我发现博客环境发生问题时,就无处下手了。

阅读全文 »

一提及面向对象,“封装、继承、多态”立刻就浮现出来。在学习OO时,我们总是不假思索地接受了这些概念,却没能更进一步地思考,什么才是面向对象。

阅读全文 »

书接上回,面试破防有感中,我遭遇了面试官的夺命连环问,其中让我最久久不能平息的莫过于“你了解Redis数据结构的底层实现吗?”。遥记曾多次看到过类似文章,但总是用各种理由推脱,没仔细研究,这才在面试上吃了大亏。为了弥补面试的遗憾,我花了些时间,研究了Redis的数据结构底层实现。

阅读全文 »

由于GIL锁的存在,Python的多线程并不能起到利用多核处理器的作用,对于CPU密集型任务无法提升效率;然而,即使作为IO密集任务的并发机制,线程附带的上下文切换开销也导致了效率的低下。这种场景下,python使用await/async关键字提供的协程机制,提供了一种低开销的异步IO机制。

阅读全文 »

或是实践引发思考,亦或是网上冲浪时get的知识,作为一个勤于思考的准程序员,我总能收集到一些奇怪的知识点。一般来说,应该记录下自己对这些知识点的思考历程、验证实验啥的,但奈何“懒鬼上身”,也就不了了之了…… Logres,我该怎么说你呢?业荒于嬉啊!

不过说归那么说,还是需要在此进行简短的记录的,否则待到彻底忘记,那就真的白学了。

阅读全文 »

return是编程中常常涉及到的语句,其主要用途为被调用函数返回约定好的返回值,以便于调用函数接收。我们常常将该动作视作原子的,大多数情况下这个假设是正确的,但倘若不加以钻研,在某些场景下,其行为就会显得怪异而难以理解了。

阅读全文 »

闲着没事干,人就喜欢网上冲浪,然后找到一个莫名其妙的新名词,随意看看,或许确实有趣,便被莫名其妙得吸引,若是再一时半会儿看不出门道,那就惨了,定会被莫名其妙得套牢,吃不好饭、睡不好觉、手头工作也没心思干,尽想着这事了……这不,晚上睡觉前没啥看,看到个Vert.x与响应式编程,一看就是半天。

阅读全文 »