理解源码的一种方式
TL;DR 目标导向,带着问题读源码;自顶向下,先理解 what,再去代码中找 how;最后擅用图形化工具,抓大放小,有的放矢。 ...
TL;DR 目标导向,带着问题读源码;自顶向下,先理解 what,再去代码中找 how;最后擅用图形化工具,抓大放小,有的放矢。 ...
最近在做 Kubernetes Security 相关的工作。作为一个 Kubernetes 新手,刚看到 yaml 文件中的 namespace 时,很容易和 Linux 的 Namespace 搞混。加上在读 Kubernetes 文档的时候,总时不时看到 Linux Namespace 的字样就更加困惑起来。以此为契机,正好把 Linux Namespace 再好好梳理一下,解开心中的谜团: Linux 的 Namespace 是如何实现资源的隔离 Linux 下哪些资源可以按照 Namespace 组织,如何组织 Container 哪些地方用到了 Linux Namespace ...
今天看了 《Python源码剖析》 中多线程的章节,看完头都秃了。但还是感觉自己没有吸收多少,知识一股脑倾泻下来,然后匆匆流过。在两个番茄钟的间隙,我全景思考了下,还是要从上往下入手,先将 threading 模块梳理清楚。其次是带着问题来阅读源码,跟着作者的思路容易迷,而问题最好是从 threading 的使用姿势中来。 来看廖雪峰老师Python教程中的例子: import time, threading def loop(): print('thread %sis running...' % threading.current_thread().name) n = 0 while n < 5: n = n + 1 print('thread %s>>> %s' % (threading.current_thread().name, n)) time.sleep(1) print('thread %sended.' % threading.current_thread().name) print('thread %sis running...' % threading.current_thread().name) t = threading.Thread(target=loop, name='LoopThread') t.start() t.join() print('thread %sended.' % threading.current_thread().name) 看完这段代码,我的脑海中浮现了这几个问题: Thread 是如何描述线程对象的? 启动线程的时候做了些啥,线程对象保存在哪里? 除了 Thread,threading 里还保存了写东西,否则 threading.current_thread() 怎么实现? 除此之外,还有一些线程的常见问题,如: threading 提供了哪些线程同步方式,锁? ...
这篇博客想讲一下 Redis 命令的注册、解析和执行。 本文采用的源码是 Redis 5.0.0 ...
之前看到一篇 用 Redis 快速实现 BloomFilter 就忍不住看看 Redisson 的 实现方式 ...
这篇博客的起源是一位内部用户询问,Azure Cache for Redis 有没有 .pem 或者 .cem 的证书,然后可以在客户端指定它: import redis try: conn = redis.StrictRedis( host='<cache-name>.redis.cache.windows.net', port=6380, password='your password here', ssl=True, ssl_ca_certs='path to cert') print (conn) conn.ping() print ('Connected!') except Exception as ex: print ('Error:', ex) exit('Failed to connect, terminating.') ...