yii2 redis封装类 php,yii2项目中如何使用redis
想要在Yii2这个PHP框架中很好的使用redis键值存储,那么首先就要推荐yii2-redis这个官方的Github库。这个库能够很好的帮助我们在Yii2框架中使用redis,它提供缓存,Session以及ActiveRecord模式的支持。
安装yii2-redis库
推荐使用composer安装yii2-redis库,在你的项目根目录执行php composer.phar require --prefer-dist yiisoft/yii2-redis:"~2.0.0"
或者将"yiisoft/yii2-redis": "~2.0.0"
加入你的composer.json文件里,之后运行composer update,墙内真的很慢,耐心等待即可。
配置redis
要正确的使用这个扩展,你必须在你的应用程序的配置文件内,配置Connection类,一般来说,配置文件是config\web.php。
在你的组件里加入redis项目,如下:return [
//....
'components' => [
'redis' => [
'class' => 'yii\redis\Connection',
'hostname' => 'localhost',
'port' => 6379,
'database' => 0,
],
]
];
如此之后,你便能正常的在yii2框架中使用redis。
示例
简单使用
我们先来看一段最简单的使用redis的代码:$redis = Yii::$app->redis;
$key = 'username';
if ($val = $redis->get($key)) {
return ['redis' => $val];
} else {
$redis->set($key, 'Leon');
$redis->expire($key, 5);
}
return ['redis' => 'no data'];
没有一行注释,但是就是一目了然是不是。
寻找username这个key,如果找不到,设置键值存储,并且过期时间是5秒钟。
这就是一个完整的使用redis的例子。
Cache
那么接下来,我们来看看怎么样将redis用在缓存上。
同样的,作为缓存使用,我们需要去配置文件里修改缓存项:'components' => [
'cache' => [
// 'class' => 'yii\caching\FileCache',
'class' => 'yii\redis\Cache',
],
],
如果你没有配置过redis组件,那么还需要在cache下配置redis:'components' => [
'cache' => [
// 'class' => 'yii\caching\FileCache',
'class' => 'yii\redis\Cache',
'redis' => [
'hostname' => 'localhost',
'port' => 6379,
'database' => 0,
],
],
],
示例代码如下,通俗易懂也就不过多解释了:$cache = Yii::$app->cache;
$key = 'username';
if ($cache->exists($key)) {
return ['cache' => $cache->get($key)];
} else {
$cache->set($key, 'Leon', 5);
}
return ['cache' => 'no cache'];
Session
最后是redis用作session。也是要在组件中配置:'components' => [
'session' => [
'name' => 'advanced-frontend',
'class' => 'yii\redis\Session'
],
],
如果没有配置过redis,同样需要配置:'components' => [
'session' => [
'name' => 'advanced-frontend',
'class' => 'yii\redis\Session',
'redis' => [
'hostname' => 'localhost',
'port' => 6379,
'database' => 0,
],
],
],
示例代码如下:$session = Yii::$app->session;
$key = 'username';
if ($session->has($key)) {
return ['session' => $session->get($key)];
} else {
$session->set($key, 'Leon');
}
return ['session' => 'no session'];
在简单的示范下,如何将redis这个高效的工具用好,则是考验大家的能力了。加油吧!
PHP中文网,有大量免费的Yii入门教程,欢迎大家学习!
yii2 redis封装类 php,yii2项目中如何使用redis相关推荐
- spring boot 注解_Spring-Boot项目中如何配置redis注解缓存?
在pom中添加redis缓存支持依赖 <dependency><groupId>org.springframework.boot</groupId><arti ...
- redis php教程pdf,ThinkPHP中简单使用Redis
首先在配置文件中配置Reids //Redis 配置 'DATA_CACHE_PREFIX' => 'Redis_', //缓存前缀 'DATA_CACHE_TYPE'=>'Redis', ...
- java redis缓存理解_Java项目中使用Redis缓存案例
缓存的目的是为了提高系统的性能,缓存中的数据主要有两种: 1.热点数据.我们将经常访问到的数据放在缓存中,降低数据库I/O,同时因为缓存的数据的高速查询,加快整个系统的响应速度,也在一定程度上提高并发 ...
- php redis decr_Redis在PHP项目中的实际应用场景
商品维度计数 对商品喜欢数,评论数,鉴定数,浏览数进行计数 说起电商,肯定离不开商品,而附带商品有各种计数(喜欢数,评论数,鉴定数,浏览数,etc) Redis的命令都是原子性的,你可以轻松地利用IN ...
- redis各种数据结构在项目中的应用场景
购物车: hash: key:user:memberId:cart value:map map{key:skuid,value:cartItem} 2:提交订单时防止重复提交:订单交易码 String ...
- java redis缓存实例_spring项目整合ehcache和redis缓存实例
项目描述 Spring的缓存机制非常灵活,可以对容器中任意Bean或者Bean的方法进行缓存,因此这种缓存机制可以在JavaEE应用的任何层次上进行缓存. Spring缓存底层也是需要借助其他缓存工具 ...
- java redis缓存使用_redis缓存在项目中的使用
关于redis为什么能作为缓存这个问题我们就不说了,直接来说一下redis缓存到底如何在项目中使用吧: 1.redis缓存如何在项目中配置? 1.1redis缓存单机版和集群版配置?(redis的客户 ...
- 一看就懂系列之 详解redis的bitmap在亿级项目中的应用
前言 这是一篇拖了很久的总结,项目中引入了redis的bitmap的用法,感觉挺高大上的,刨根问底,故留下总结一篇当作纪念. 说清楚几个问题: 1.bitmap的原理.用法. 2.bitmap的优势. ...
- 各种面试题 挺好 挺重要 项目中 有用 的地方
说说你对缓存的理解? 1.使用缓存的目的: 提高应用程序的性能,减少到数据库的访问次数, 举个简单应用场景,比如微信群聊,当服务器收到一条消息的时候,需要把消息插入数据库.最原始的做法,就是每当有一条 ...
最新文章
- 这是2018年的第一场AI生态论坛,比以往来得更早一些
- Qt QPushButton圆形图片设置为背景
- bzoj 3675: [Apio2014]序列分割
- 数据结构与算法专题——第十题 输入法跳不过的坎-伸展树
- 使用Pandas 1.1.0进行稳健的2个DataFrames验证
- java todo error_Java全局异常处理(TODO)
- “Python字符串index()方法应用案例”文末三道思考题答案
- pythonkeywordis与 ==的差别
- 金格iweboffice axios上传单文件和多文件js代码
- 淘宝转化率突然下降怎么办?原来是这些原因
- Aggressive cows 二分
- jQuery对checkbox的各种操作
- mysql使用命令行导入sql脚本 报错无法插入中文
- 我们都知道李、张、王、刘是四大姓氏,那么四小姓氏你知道几个?
- 带你了解什么是抽象类,抽象类不能够被实例化为什么还有构造方法?
- Linux下shell命令:ps
- SQL 查询语句报错
- 修改cmd编码为UTF-8
- Flume官方文档翻译之(三)
- App store 下载软件失败的解决办法总结