最近再看 Redis 核心技术与实战,正好看到了分布式锁的地方,于是我就找到了 Python Redis 的包,看到了里面 lock 模块,然后就顺便看了看里面的代码,发现挺简单的。关键知识点主要是要知道 Redis 执行 LUA 脚本是原子性的,且了解一些分布式锁的演进和问题,例如, 如果防止我的锁被其他 Redis 客户端释放掉。这些都在 Python Redis 包中的 lock 模块得到了解决(利用了 thread local 将 token 存起来,这样其他线程就不会释放我的锁了)

阅读全文 »

现象

项目启动的时候启动失败,提示磁盘空间不足,但是使用 df -h 查看时,却发现空间大小是够的。再使用 df -i 查看 inode 使用情况时,发现 inode 使用满了。

阅读全文 »

35. 搜索插入位置

题目

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

阅读全文 »