摘要: Celery是Python中最流行的异步消息队列框架,支持RabbitMQ、Redis、ZoopKeeper等作为Broker,而对这些消息队列的抽象,都是通过Kombu实现的。Kombu实现了对AMQP transport和non-AMQP transports(Redis、Amazon SQS、 阅读全文
posted @ 2019-08-15 12:44 再见紫罗兰 阅读(3303) 评论(0) 推荐(0) 编辑
摘要: 先从一道面试题开始: 给A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出A,B文件共同的URL。 这个问题的本质在于判断一个元素是否在一个集合中。哈希表以O(1)的时间复杂度来查询元素,但付出了空间的代价。在这个大数据问题中,就算哈希表有100%的空间利用率,也 阅读全文
posted @ 2019-08-03 17:11 再见紫罗兰 阅读(2234) 评论(0) 推荐(0) 编辑
摘要: SCAN命令可以为用户保证:从完整遍历开始直到完整遍历结束期间,一直存在于数据集内的所有元素都会被完整遍历返回,但是同一个元素可能会被返回多次。如果一个元素是在迭代过程中被添加到数据集的,又或者是在迭代过程中从数据集中被删除的,那么这个元素可能会被返回,也可能不会返回。 这是如何实现的呢,先从Red 阅读全文
posted @ 2019-07-29 11:36 再见紫罗兰 阅读(2661) 评论(0) 推荐(0) 编辑
摘要: 闭包是Python装饰器的基础。要理解闭包,先要了解Python中的变量作用域规则。 变量作用域规则 首先,在函数中是能访问全局变量的: >>> a = 'global var' >>> def foo(): print(a) >>> foo() global var 然后,在一个嵌套函数中,内层函 阅读全文
posted @ 2019-07-22 10:24 再见紫罗兰 阅读(7646) 评论(0) 推荐(4) 编辑
摘要: 在Redis中的LRU算法文中说到,LRU有一个缺陷,在如下情况下: 会将数据D误认为将来最有可能被访问到的数据。 Redis作者曾想改进LRU算法,但发现Redis的LRU算法受制于随机采样数maxmemory_samples,在maxmemory_samples等于10的情况下已经很接近于理想的 阅读全文
posted @ 2019-05-31 15:42 再见紫罗兰 阅读(15292) 评论(4) 推荐(13) 编辑
摘要: Redis作为缓存使用时,一些场景下要考虑内存的空间消耗问题。Redis会删除过期键以释放空间,过期键的删除策略有两种: 惰性删除:每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键。 定期删除:每隔一段时间,程序就对数据库进行一次检查,删除里面的过期 阅读全文
posted @ 2019-05-29 17:47 再见紫罗兰 阅读(33528) 评论(3) 推荐(7) 编辑
摘要: LRU是Least Recently Used的缩写,即最近最少使用,常用于页面置换算法,是为虚拟页式存储管理服务的。 现代操作系统提供了一种对主存的抽象概念虚拟内存,来对主存进行更好地管理。他将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在主存和磁盘之间来回传 阅读全文
posted @ 2019-05-26 18:44 再见紫罗兰 阅读(26803) 评论(0) 推荐(6) 编辑
摘要: 在Python Web开发中,我们一般使用Flask、Django等web框架来开发应用程序,生产环境中将应用部署到Apache、Nginx等web服务器时,还需要uWSGI或者Gunicorn。一个完整的部署应该类似这样: 要弄清这些概念之间的关系,就需要先理解WSGI协议。 WSGI是什么 WS 阅读全文
posted @ 2019-05-01 16:38 再见紫罗兰 阅读(2220) 评论(0) 推荐(1) 编辑
摘要: `this Javascript this this`的绑定和函数声明的位置没有任何关系,只取决于函数的调用方式。 绑定规则 绑定根据函数的调用方式基本上有四种规则: 全局性调用 函数的最通常用法, 代表全局对象: 作为对象的方法调用 函数作为某个对象的方法调用时, 指向这个上级对象: 当存在多重调 阅读全文
posted @ 2019-04-01 20:46 再见紫罗兰 阅读(328) 评论(0) 推荐(0) 编辑
摘要: Vim关于Vue的生态链还是很少,不过凑活凑活还是能用的。 缩进 缩进采用的是两个空格,.vimrc配置: 语法高亮 重要的语法高亮,支持最好的应该是vim-vue。 使用Vundle下载: 这样语法高亮基本上就实现了,不过会出现滑动过快高亮失效的情况,文档中给出的原因是vue包含html、css、 阅读全文
posted @ 2019-01-23 16:42 再见紫罗兰 阅读(8088) 评论(1) 推荐(3) 编辑