用户和api操作的限制
用户身份
IP 设备序号 用户id 用户手机设备cid 可伪造 不用于识别用户
硬件设备
根据ip限制
单ip 单位分钟只可以查询 N次数据库 单i 单位时间内 只可以查询N次 redis <> 包括上传数据
根据mac限制
即便是有效的mac 单位时间内只可以操作N次redis
用户app
根据IP
单ip 单位时间内 只可以查询N次数据库检查用户密码 单ip 单位时间内 只可以查询N次redis检查用户密码
根据用户id
单用户 单位时间内只可以查N次redis 单用户 单位时间内只可以查N次redis
根据设备和app区分
设备上报日志 获取返回值
查询redis 根据ip 限制 1分钟内400次 limit.dev.redis.ip.xxx.m. 根据mac 限制 1分钟内40次 limit.dev.redis.mac.xxx.m. 查询数据库 根据ip限制 1分钟内60次 limit.dev.mysql.ip.xxx.m. 根据mac 限制 1分钟内1次 limit.dev.mysql.mac.xxx.m.
APP = > 登录 和 用id token检查登录
查询redis 根据ip 限制 1分钟内120次 limit.app.login.redis.ip.xxx.m. 查询数据库 根据ip限制 1分钟内100次 limit.app.login.mysql.ip.xxx.m.
APP => 获取手机验证码
手机号要先存在
查询数据库 根据ip 限制 1分钟内120次 limit.app.sms.mysql.ip.xxx.m. 发送SMS
1分钟内1次 limit.app.sms.phone.xxx.m. 1天3次 limit.app.sms.phone.xxx.day.
App => 获取设备日志
根据IP 查询用户日志 1分钟限制600次 limit.app.getlog.redis.ip.xxx.m. 1小时限制3600次 limit.app.getlog.redis.ip.xxx.hour. 根据用户id 1分钟限制600次 limit.app.getlog.redis.userid.xxx.m.
App => 常规操作
根据IP 查询操作redis
1分钟600次 limit.other.redis.ip.xxx.m. 1小时3600次 limit.other.redis.ip.xxx.hour. 查询操作数据库 1分钟600次 limit.other.mysql.ip.xxx.m. 1小时3600次 limit.other.mysql.ip.xxx.m.