goframe中redis使用技巧
¶redis的返回值类型
gvar.var类型,该类型永远不为空。
¶判断控制方式
使用方法 redis返回值.IsEmpty()来进行判断
¶redis键名添加前缀,防止键名重复被覆盖
使用key := fmt.Sprintf("user:info:%s", req.Uname) // 如 "user:info:zhangsan"方法
¶redis过期时间的意义
以一个实际应用来进行说明:
如果实现一个物联网平台,设备的状态信息存储进redis中,下面是设置过期时间和未设置过期时间的区别
| 设置过期时间 | 未设置过期时间 | |
|---|---|---|
| 容量 | 设备离线到时自动销毁数据,防止容量溢出 | 即使设备离线,设备数据仍然存储在redis中 |
| 覆盖 | 采用set类型,自动覆盖同一键名 | 采用set类型,自动覆盖同一键名 |
| 应用 | 设备离线,可通过查找redis数据为空来实现辨别 | 设备离线,数据仍然保存在redis中 |
¶序列化和反序列化
序列化:redisJson, err := gjson.Encode(userInfo)
反序列化:err = gjson.DecodeTo(userInfo.String(), &out)
应用:当使用redis以字符串形式作为值时,需要序列化。