11 2021 档案

摘要:这周我们一起看另外一个工具,负责AMQP协议中数据传输的python-amqp库。它采用纯python实现(支持cython扩展),可以通过它理解AMQP协议的细节,打下celery的基础,本文包括如下几个部分: py-amqp项目概述 帧机制详解 AMQP协议帧处理 AMQP使用 AMQP模型 小 阅读全文
posted @ 2021-11-19 13:53 Tracydzf 阅读(101) 评论(1) 推荐(0) 编辑
摘要:celery的项目结构 celery我们选用 5.0.5 版本,首先requirements/default.txt文件描述主要依赖下面几个库: billiard(台球) celery项目提供的一个多进程池的实现 kombu(命令) celery项目提供的一个消息库,可以对接不同的消息队列,比如Ra 阅读全文
posted @ 2021-11-16 19:28 Tracydzf 阅读(95) 评论(0) 推荐(0) 编辑
摘要:滑动窗口算法 指定时间T内,只允许发生N次。我们可以将这个指定时间T,看成一个滑动时间窗口(定宽)。 我们采用Redis的zset基本数据类型的score来圈出这个滑动时间窗口。在实际操作zset的过程中,我们只需要保留在这个滑动时间窗口以内的数据,其他的数据不处理即可。 每个用户的行为采用一个zs 阅读全文
posted @ 2021-11-15 19:38 Tracydzf 阅读(3808) 评论(0) 推荐(0) 编辑
摘要:首先我们来看一个常见 的简单的限流策略。系统要限定用户的某个行为在指定的时间里只能允许发生 N 次,如何使用 Redis 的数据结构来实现这个限流的功能? # 指定用户 user_id 的某个行为 action_key 在特定的时间内 period 只允许发生一定的次数 max_count def 阅读全文
posted @ 2021-11-15 19:04 Tracydzf 阅读(150) 评论(0) 推荐(0) 编辑
摘要:布隆过滤器是什么? 布隆过滤器可以理解为一个不怎么精确的 set 结构,当你使用它的 contains 方法判断某个对象是否存在时,它可能会误判。 但是布隆过滤器也不是特别不精确,只要参数设置的合理,它的精确度可以控制的相对足够精确,只会有小小的误判概率。 当布隆过滤器说某个值存在时,这个值可能不存 阅读全文
posted @ 2021-11-15 18:10 Tracydzf 阅读(86) 评论(0) 推荐(0) 编辑
摘要:Redis 命令以来第一次用到阻塞概念,什么是阻塞?就是在调用函数的时候,如果不能马上得到想要的,就开始等待的状态,并不返回数据,当条件满足后立即返回,这就是函数阻塞,这篇笔记之前总结的命令都是非阻塞的,也就是无论有无结果都会立即返回,接下来具体看一下今天的这两个阻塞命令。 BLPOP 命令是 LP 阅读全文
posted @ 2021-11-15 16:51 Tracydzf 阅读(569) 评论(0) 推荐(0) 编辑
摘要:python redis 中blpop返回的是元组对象,因此返回的时候注意 lpop返回的是对象 阅读全文
posted @ 2021-11-15 16:39 Tracydzf 阅读(381) 评论(0) 推荐(0) 编辑