问题

在thinkphp5.1项目中需要引入Redis,安装redis后在tp5.1写入相关的操作代码后却一直报错,可能出现的问题如下:
1. 安装不正确,即redis没正常运行
2. 没有添加php_redis驱动扩展
3. php.ini修改位置不正确
4. tp5.1中配置代码不正确

解决方案

  1. 首先检查在GUI界面下是否能够连接到Redis,如果不能则要检查Redis的安装(linux用户推荐从官网下载源码后直接make后使用,win用户推荐下载github上微软维护的另一个二进制版本,需要翻墙)
  2. 如果安装没有问题,则需要下载响应的动态链接库驱动,还记得java在使用MySQL的时候需要引入驱动包,在这里需要引入dll动态连接库文件(http://pecl.php.net/package/redis),需要注意的是必须在phpinfo页面查看当前php的版本,线程安全与否,必须引入相对应的dll,笔者用的php7.0.x只引入了php_redis.dll一个文件,其他版本如5.6.x请参考相关文档。
  3. 笔者使用的是wamp服务器,而在wamp引入dll文件并不是在php目录下的php.ini而是在\wamp64\bin\apache\apache2.4.23\bin\php.ini ,可以在phpinfo中查看配置Loaded Configuration File 的参数即可。
  4. 如果以上安装正确,可以在命令行下输入php,如果没有报warning,则说明驱动安装正确,接下来,在tp5.1中配置使用它,在官方文档并没讲清楚怎么去使用,但是在Cache中有相关的驱动函数,我们只需要配置即可,具体的配置如下:

    单一缓存机制配置

return ['type' => 'Redis','host' => '127.0.0.1','port' => '6379','password' => '','timeout' => 3600
];

多层并存缓存机制配置

'cache' => [// 选择模式'type' => 'complex',// 默认(文件缓存)'default' => [// 文件缓存'type' => 'File',// 缓存保存目录'path' => CACHE_PATH,// 缓存前缀'prefix' => '',// 缓存有效期 0表示永久缓存'expire' => 0,],// Redis缓存'redis' => ['type' => 'Redis','host' => '127.0.0.1','port' => '6379','password' => '123456','timeout' => 3600]],

接下来在控制中就可以使用了,

Cache::store('redis')->set('key1','123456789');
Cache::store('redis')->get('key1');

或者:

$redis = new Redis();
$c = $redis->set("123","456");
print_r($redis->get("123"));

ThinkPHP5.1中使用Redis来缓存相关推荐

  1. springboot整个缓存_SpringBoot中整合Redis(缓存篇)

    实际开发中缓存处理是必须的,不可能我们每次客户端去请求一次服务器,服务器每次都要去数据库中进行查找,为什么要使用缓存?说到底是为了提高系统的运行速度.将用户频繁访问的内容存放在离用户最近,访问速度最快 ...

  2. 在.Net项目中使用Redis作为缓存服务

    最近由于项目需要,在系统缓存服务部分上了redis,终于有机会在实际开发中玩一下,之前都是自己随便看看写写,很零碎也没沉淀下来什么,这次算是一个系统学习和实践过程的总结. 和Redis有关的基础知识 ...

  3. python使用redis做缓存_Python中的Redis客户端缓存(二)

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 处理失效 无效消息如何发送到被追踪的客户端取决于客户端正在使用的Redis序列化协议(RESP).早期版本 ...

  4. redis java 缓存服务器_java中对Redis的缓存进行操作

    Redis 是一个NoSQL数据库,也是一个高性能的key-value数据库.一般我们在做Java项目的时候,通常会了加快查询效率,减少和数据库的连接次数,我们都会在代码中加入缓存功能.Redis的高 ...

  5. 记自己在spring中使用redis遇到的两个坑

    本人在spring中使用redis作为缓存时,遇到两个坑,现在记录如下,算是作为自己的备忘吧,文笔不好,望大家见谅: 一.配置文件 1 <!-- 加载Properties文件 --> 2 ...

  6. spring boot 注解_Spring-Boot项目中如何配置redis注解缓存?

    在pom中添加redis缓存支持依赖 <dependency><groupId>org.springframework.boot</groupId><arti ...

  7. redis 清空缓存_「镜头回放」简直了!spring中清除redis缓存导致应用挂死

    异常场景 springWeb应用一直运行正常,同事最近反应,每次版本更新完毕,刷新缓存,就会导致应用挂死.只有重启redis应用才恢复正常. 项目概况 springWeb项目,常用配置表做了redis ...

  8. java用redis缓存的步骤_详解在Java程序中运用Redis缓存对象的方法|chu

    这段时间一直有人问如何在Redis中缓存Java中的List 集合数据,其实很简单,常用的方式有两种: 1. 利用序列化,把对象序列化成二进制格式,Redis 提供了 相关API方法存储二进制,取数据 ...

  9. java实现缓存中间件,Redis,分布式系统中不可少的缓存中间件

    1.为什么要用缓存 内存在整个计算机系统来说也就是一个缓存,CPU操作内存速度很快:因为操作数据的时候,先从硬盘中取出数据放到内存中,然后CPU操作数据 缓存:提升访问效率,将一些频繁访问地放在缓存里 ...

最新文章

  1. 数据库低端sql查询语句片段
  2. 英伟达深度学习推理引擎TensorRT,现在开源了
  3. IOS开发笔记6-C语言基础复习
  4. matlab 老照片处理,matlab实现PS算法之百叶窗、老照片
  5. 使用windows live writer连接CSDN和博客园博客
  6. django为Form生成的label标签添加class
  7. leetcode -- Maximum Subarray
  8. monkey命令常用参数与monkey事件百分比
  9. su命令的隐患——用户提权
  10. tcl中数字加减的怪异现象
  11. Linux下的make命令使用心得
  12. webservice 传输加密
  13. WIN7下默认网关丢失该如何解决
  14. 软件测试【网络经典面试题】面经分享
  15. Java并发指南1:并发基础与Java多线程
  16. 吊打 CLIP 平均10个点,Meta 多模态通用模型 FLAVA真香啊
  17. linux连接多个显示器,如何在Linux Ubuntu中使用多个和外部显示器 | MOS86
  18. 蓝桥杯--历届真题 回文日期【第十一届】【省赛】【B组】
  19. 1000个手工绘制污渍笔刷
  20. c语言为什么运行不出数据,程序运行后可以输入数据,但是之后为什么没有显示?...

热门文章

  1. 用CSS伪类制作一个不断旋转的八卦图?
  2. echarts地图在ie浏览器上不显示
  3. js 实现简单的轮询
  4. Kubernetes CRD开发模式及源码实现深入剖析-Kubernetes商业环境实战
  5. 2019 The 19th Zhejiang University Programming Contest
  6. linux常用命令-压缩解压命令
  7. 如何部署Zabbix服务端
  8. 程序员需要谨记的九大安全编码规则
  9. sql server 自定义函数的使用
  10. Oracle 查询历史数据(转帖)