笔记:
1.Redis分布式缓存可以将数据写到内存里面,数据读取速度比写到SSD硬盘快了几个数量级,并且缓存文件可以设置TTL,防止内容过多;
2.percentage = 10 + (idx / len(todo_items)) * 70 主要的搜索任务只占百分之70,剩下的留给循环结束后的收尾工作(如总结、保存、格式化等),防止进度条过早填满导致用户误以为程序卡死;
3.RedisCell可以结合"令牌桶"限制用户的请求数,CL.THROTTLE user_123 5 5 60(意思:给 user_123 限制 60 秒 5 次请求),60秒内可以攒5个令牌(5次请求),当超出5次就只能等待下一个令牌;
4.Redis还可以有效得管理不同服务器之间的动作,比如变量+1,即使服务器A和服务器B同时搜到变量+1的请求,Redis也会让他们排队,一个加完再另一个,防止变量覆盖,就好比一个用户对两个服务器放松请求,如果欸有Redis的原子计算,同时的两个请求可能被理解为1个,这样会导致服务器压力变大和“令牌桶”限制失效;
5.Uvicorn 是一个超快的 ASGI 服务器,负责实际运行你的 FastAPI 应用,示例:uvicorn.run( app, host=settings.HOST, port=settings.PORT, log_level="info" );


