这是黑马程序员的 redis 课程实战篇的代码的 python 实现。由于我主要使用 python 做后台开发,因此在看课程的时候用 python 实现了一份和原 java 代码几乎同样功能的 python 后端。
如果有其他童鞋也在学该课程,希望能帮助到你。😀
代码很多地方不够完善,特别随项目增长,很多地方需要重构的,我都没精力去搞了。如果有任何疑问或致命 bug 欢迎讨论。🥂
欢迎来我的博客里看到我的学习笔记 😊
- fastapi==0.78.0 : 后端框架
- sqlmodel==0.0.6 : orm,从版本号可看出该框架截至 2022-07-29 尚不十分成熟
- pymysql==1.0.2 : orm backend
- uvicorn==0.18.2 : ASGI 服务器,fastapi 依赖此启动
- itsdangerous==2.1.2 : Starlette 的 SessionMiddleware 依赖
- starsessions==1.2.3 : 实现基于内存的 session. (fastapi 默认只支持基于 cookies 的 session)
- aioredis[hiredis]==2.0.1 : asyncio 的 redis 库,后弃用,由于发现该库以完全在 redis-py 中实现
- pytest==7.1.2 : 想写测试的,后来算了 😜
- python-multipart==0.0.5 : fastapi FileUpload 依赖
- redis[hiredis]==4.3.4 : redis
- types-redis==4.3.11 : pycharm 中
from redis import asyncio
会出警告,安装该库可解决
大致和 fastapi 作者提供的 Full Stack FastAPI PostgreSQL 模板中的 backend 结构一致
每个章节的代码提交到独立的分支中,master 含所有代码
章节序号 | 章节名称 | 分支 |
---|---|---|
1 | 短信登录 | redis_based_login |
2 | 商户查询缓存 | query_cache |
3 | 优惠卷秒杀 | seckill |
4 | 分布式锁 | distributed-lock |
5 | 分布式锁-redission | distributed-lock ( python 没有类似 redission 的库,因此未完全实现该章节) |
6 | 秒杀优化 | seckill-optimize |
7 | Redis消息队列 | redis-mq |
8 | 达人探店 | blog |
9 | 好友关注 | follow |
10 | 附近商户 | geo |
11 | 用户签到 | user-sign |
12 | UV统计 | uv-log |