本系统是一个基于 Redis 数据库的校园一卡通消费管理系统,实现了账户管理、消费记录、充值记录、排行统计、安全控制等功能。
| 功能 | Redis 数据结构 | 优势 |
|---|---|---|
| 账户信息 | Hash | 支持单字段原子操作 HINCRBY |
| 消费/充值记录 | List + Hash | 天然时间序列,LPUSH 高效 |
| 消费排行榜 | Sorted Set | O(log N) 实时排名 |
| 黑名单 | Set | O(1) 快速判断 SISMEMBER |
RedisCard/
├── config.py # Redis 配置与常量定义
├── main.py # 主程序(交互式菜单)
├── models/
│ ├── account.py # 账户管理模块
│ ├── consume.py # 消费记录模块
│ ├── recharge.py # 充值记录模块
│ ├── ranking.py # 排行统计模块
│ └── security.py # 安全功能模块
├── utils/
│ └── helpers.py # 工具函数
├── tests/
│ └── test_all.py # 测试脚本
└── README.md # 项目说明
- Python 3.7+
- Redis 5.0+
- redis-py 库
# 1. 安装依赖
pip install redis
# 2. 确保 Redis 服务运行
redis-server
# 3. 运行主程序
cd f:\RedisCard
python main.py- 创建账户:
create_account(student_id, name) - 查询余额:
get_balance(student_id) - 充值:
recharge(student_id, amount) - 扣费:
consume(student_id, amount) - 冻结/解冻:
freeze_account()/unfreeze_account()
- 记录消费:
add_consume_record() - 查询历史:
get_consume_history() - 类别统计:
get_category_stats()
- 记录充值:
add_recharge_record() - 查询历史:
get_recharge_history()
- 消费排行榜:
get_consume_ranking(top_n) - 个人排名:
get_my_ranking(student_id) - 消费冠军:
get_top_consumer()
- 黑名单管理:
add_to_blacklist()/is_blacklisted() - 交易限额:
set_daily_limit()/check_daily_limit() - 余额预警:
check_low_balance()
# 创建账户
HSET user:2021001 name "张三" balance 10000 status "active"
# 充值(原子操作)
HINCRBY user:2021001 balance 5000
# 消费排行榜
ZREVRANGE ranking:consume:total 0 9 WITHSCORES
# 检查黑名单
SISMEMBER blacklist:users "2021001"
课程设计 - 2025