缓存设计

缓存结构设计示例。

说明

常规结构:

Type:Key:SubKey

:区分,在管理工具上会自动变成文件夹可收缩。

注册频率限制

Key:

reg:#手机唯一id或注册ip#

Value:

成功注册的用户名或手机号

(记录可以有迹可循,如果不需要查询,直接记录固定值,如1即可)

TTL: 1800(s)

说明:

注册成功后创建该key;判断,如果取到非null值,禁止注册。

登录尝试限制

Key:

trial:#手机唯一id或登录ip#

Value:

错误尝试次数

TTL: 1800(s)

说明:

初次尝试新建该key,值为1;判断,如果值大于3,禁止登录。

复杂缓存结构示例

接口性能监控,如图:

Image

结构:

Key:

api:#记录日期#

Value: 数组(通过Redis HSetHGet命令进行存储和读取)

[
  key:'#total(总计)/来源(如android-xxx/ios-xxx/device-xxx/web-xxx)/路径(如app1/v2/path/action)#'
  value: { // JSON.stringify(#对象#)
    count: '请求次数',
    success: '成功次数',
    avg: '平均响应时间',
    max: '最大响应时间',
    min: '最小响应时间'
  }
]