前面我们说了Redis中不能直接存对象,原因也很简单,在第三方库中没有类型转换接口,也就是说,我们把对象存进去了,取出来时无法还原,但是对于string/int类型都存在第三方存在的类型转换接口,所以说,这里用Redis要间接存储对象,我们在这里要用到编解码机制,编辑也是先探索,在总结,最后应用
一.Redis存储对象-探索
1.存储结构体
1.创建容器用于存储转换之后的二进制流(数据)
2.创建编码器
3.将结构体(对象)转换到buffer中
4.将转换后的二进制数据存储到Redis中
2.取出结构体
1.去Redis中查询数据
2.将查询到的数据转换为二进制
3.创建解码对象
4.将二进制的数据解码到指定变量中
二.存储对象-总结
三.存储对象-应用
1.回顾
在Begoo-MySQL文集中我们做过一个案例,在学生列表界面,有一个班级查询选项,每次刷新界面,都会通过路由链接控制器,请求数据库的班级列表数据.这种数据有一个特点:不更改,频繁查询适合存储在Redis数据库中,访问速率会大大的提高
2.实现
1.建立/关闭Redis数据库链接
2.导入Redigo数据库
3.查询班级列表
4.查询为空或者查询错误
执行:从MySQL数据库查询数据加载到Redis中
5.否则
执行:从Redis中获取数据
6.返回数据到视图