# 进阶篇四 Model模型和Redis缓存结合应用
## Redis安装及Redis的PHP扩展安装
Centos系统Redis安装及Redis的PHP扩展安装
https://www.kancloud.cn/mikkle/thinkphp5_study/351134
## Redis中Hash类型介绍
大家都知道,redis高速缓存中有多种类型,我们现在先只单单对Hash类型进行讲解介绍.
> Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
我这人是向来喜欢用代码说话,
直接上代码吧
在api 模块下的 Search 控制器下建立RedisHash方法
~~~
public function RedisHash(){
$info_1 = AdminNode::get(1); //对象
$info_2 = AdminNode::get(2)->toArray(); //数组
$info_3 = AdminNode::get(3)->toArray(); //数组
$redis = RedisHash::instance();
$redis->setHashKey("AdminNode:1")->set($info_1);
$redis->setTable("AdminNode")->setKey("2")->set($info_2);
$redis->setTable("AdminNode")->setKey("3")->set($info_3);
//获取方式 整条数据
echo "info_1完整数据".PHP_EOL;
dump($redis->setTable("AdminNode")->setKey(2)->get());
echo "info_2完整数据".PHP_EOL;
dump($redis->setHashKey("AdminNode:2")->get());
echo "info_3完整数据".PHP_EOL;
dump($redis->setHashKey("AdminNode:3")->get());
//获取方式 指定字段
echo "info_1指定字段".PHP_EOL;
dump($redis->setTable("AdminNode")->setKey("1")->get(["node_name","action_name"]));
echo "info_2指定字段".PHP_EOL;
dump($redis->setHashKey("AdminNode:2")->get("node_name,action_name"));
echo "info_3指定字段".PHP_EOL;
dump($redis->setHashKey("AdminNode:3")->get("node_name"));
}
~~~
那么我的访问路径为
http://study.mikkle.cn/api/search/redisHash
结果如图
![](https://box.kancloud.cn/2878820c57275fe89c1362624f5ef575_626x842.png)
> 你自己的访问路径和你的模块控制器有关系
我自己封装了一个RedisHash类
RedisHash类源码
https://www.kancloud.cn/mikkle/thinkphp5_study/384980
> 本节只是讲了一下redis的hash封装后的简单用法,请关注后面课程中Model类中使用Hash快速查询和更新
>
感谢大家关注 交流请加QQ群 321449759
![](https://box.kancloud.cn/3499008a08e64306c68873288092a057_286x340.png)