_

Python Asyncio 之常见的三个坑

前记Python Asyncio是一个用户态协程的实现,没有任何系统级的调度干扰,这意味着它能更快的被调度,但是由于Asyncio是后面才被加入到Python中,所以带来一些不方便的使用和容易踩...

如何在FastAPI正确的使用依赖注入

前记大多数使用静态语言的开发者都知道依赖注入是什么,但是对于使用Python的开发者却很少有机会接触到依赖注入,这是因为不同编程语言的机制导致的,具体可以通过《为何在Python生态很少听说到依...

分布式锁(3)--基于Etcd的分布式锁实现

前记基于Redis实现的分布式锁的性能强,功能多,但是由于Redis本身的特性决定了基于Redis实现的分布式锁可能会不唯一,所以无法应用在要求分布式锁必须绝对唯一的场景。为此,只能基于其他服务...

分布式锁(2)--基于Redis实现的不同功能的分布式锁

前记py-redis库默认提供的是高性能,功能简单的分布式锁,这就导致了它无法兼容某些特殊的场景,在本文中将针对各种不同功能从零到一实现对应的锁。

Python Asyncio 之网络编程方法详解

前记Python Asyncio不仅提供了简单的Socket接口,还基于Asyncio.Socket提供了Protocol&Transport接口以及更高级的Stream接口,这些接口大...

Python Asyncio实践--高并发下如何防止缓存击穿

前记本文描述的是如何基于Asyncio.Future的特性编写一个语言级别的防缓存击穿的工具–Share,并介绍它的使用和高并发下的处理方法。

分布式锁(1)--分布式锁的简单实现

前记随着业务的增长,后端技术架构会慢慢的从单体服务转向多服务或者微服务的分布式架构,此时语言级别的锁无法管理所有资源的竞争,只能采用分布式锁。而分布式锁的主体思想虽然与语言级别的锁类似,但还需要...

Redis Scan命令踩坑笔记

前记大部分人在接触Redis时就都会了解到Redis是以单线程的形式处理用户命令,导致O(N)的命令有极大的几率会阻塞Redis,所以在使用Redis时需要放弃一些O(n)命令的使用,比如不要去...

Web框架的快速路由实现

前记多功能的路由匹配是PythonWeb框架的一个特色,从Django,Flask框架开始,他们的路由匹配功能就非常丰富,它们基本上都允许Host匹配,重定向匹配以及其他正则匹配等使得用户可以添...

Python Asyncio 协程对象开销成本

前记最近看到一篇文章《How Much Memory Do You Need to Run 1 Million Concurrent Tasks?》,它介绍了不同语言在运行100万并发时的内存占...

Python Asyncio 库之从ChatGPT Bug了解Cancel机制

前记最近几天,在使用ChatGPT时会发现无法使用历史记录功能。而在3月24号时,OpenAI公布了这次问题是由于某个Bug导致,导致部分用户能获得到其他用户的信息,而这一切是因为redis-p...

Python Asyncio 库之同步原语常用函数详解

前记Asyncio的同步原语可以简化我们编写资源竞争的代码和规避资源竞争导致的Bug的出现。但是由于协程的特性,在大部分业务代码中并不需要去考虑资源竞争的出现,导致Asyncio同步原语被使用的...

12310