很多关注后端开发的朋友很希望了解php语言yii2框架 yii2项目中如何使用redis,今天我爱编程网为大家整理了相关文章,一起来看看吧!
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类,一般来说,配置文件是configweb.php。
在你的组件里加入redis项目,如下:
return [
//....
'components' => [
'redis' => [
'class' => 'yii
edisConnection',
'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' => 'yiicachingFileCache',
'class' => 'yii
edisCache',
],
],如果你没有配置过redis组件,那么还需要在cache下配置redis:
'components' => [
'cache' => [
// 'class' => 'yiicachingFileCache',
'class' => 'yii
edisCache',
'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
edisSession'
],
],如果没有配置过redis,同样需要配置:
'components' => [
'session' => [
'name' => 'advanced-frontend',
'class' => 'yii
edisSession',
'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框架操作数据库的方法分析【以mysql为例】
本文实例讲述了Yii2框架操作数据库的方法。分享给大家供大家参考,具体如下:
准备数据库
DROP
TABLE
IF
EXISTS
`pre_user`;
CREATE
TABLE
`pre_user`(
`id`
int(11)
AUTO_INCREMENT
PRIMARY
KEY,
`username`
varchar(255)
NOT
NULL,
`password`
varchar(32)
NOT
NULL
DEFAULT
'',
`password_hash`
varchar(255)
NOT
NULL
DEFAULT
'',
`email`
varchar(255)
NOT
NULL
DEFAULT
'',
`status`
smallint(6)
NOT
NULL
DEFAULT
10,
`created_at`
smallint(6)
NOT
NULL
DEFAULT
0,
`updated_at`
smallint(6)
NOT
NULL
DEFAULT
0
)ENGINE=InnoDB
DEFAULT
CHARSET=utf8mb4;
配置连接
config\db.php
<?php
return
[
'class'
=>
'yii\db\Connection',
'dsn'
=>
'mysql:host=localhost;dbname=yii2',
'username'
=>
'root',
'password'
=>
'root',
'charset'
=>
'utf8mb4',
'tablePrefix'
=>
'pre_'
];
查看数据库连接是否成功
控制器里打印:
var_dump(\Yii::$app->db);
怎么执行SQL语句?
增删改
//
接收表单的数据
$username
=
'jack';
$sql
=
"INSERT
INTO
{{%user}}
(username,status)
VALUES
(:username,:status)";
//
返回受影响行数
$row
=
\Yii::$app->db->createCommand($sql,['username'=>$username,'status'=>8])->execute();
//
获取自增ID
echo
\Yii::$app->db->getLastInsertID();
查询
$sql
=
"SELECT
*
FROM
{{%user}}
WHERE
id>:id";
//
查询结果是一个二维数组
$userArr
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryAll();
//
如果要查询一个
$user
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryOne();
//
如果要返回单值
//
例如
select
count(*)语句
$count
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryScalar();
echo
$count;
更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
您可能感兴趣的文章:Yii2.0高级框架数据库增删改查的一些操作Yii2——使用数据库操作汇总(增删查改、事务)Yii2数据库操作常用方法小结Yii2框架实现数据库常用操作总结Yii2实现跨mysql数据库关联查询排序功能代码Yii+MYSQL锁表防止并发情况下重复数据的方法Yii
连接、修改
MySQL
数据库及phpunit
测试连接Yii实现MySQL多数据库和读写分离实例分析Yii操作数据库实现动态获取表名的方法Yii操作数据库的3种方法
我爱编程网
yii2.0文件如何在php命令行运行
在yii根目录下面有个“yii”文件,这个文件就是入口。然后“commands”目录下会默认有个“HelloController.php”控制器文件,这个是一个demo。打开这个控制器文件,源码如下(删掉了部分注释):
<?php
namespace appcommands;
use yiiconsoleController;
class HelloController extends Controller
{
/**
* This command echoes what you have entered as the message.
* @param string $message the message to be echoed.
*/
public function actionIndex($message = 'hello world')
{
echo $message . "
";
}
}从上面可以看出,在命令行运行时,会继承console下的Controller;而一般“controllers”目录中的控制器会继承web下的Controller。
(推荐教程:yii框架)
所以在php命令行中执行yii脚本的步骤为:
1、新建一个脚本
在“commands”目录下面按照“HelloController.php”的格式新建一个控制器脚本文件。
2、在命令行执行脚本
在命令行敲入“php yii项目所在路径/yii 控制器名/方法名”,例如“php web/yii hello/index”或者 直接cd到yii项目根目录(我的是web/),然后"php yii hello/index",命令如下:
php web/yii refresh-tui-cur/tui-refresh或
php yii user-test/refresh-userinfo更多编程相关内容,请关注Gxlcms编程入门栏目!
以上就是我爱编程网为大家带来的php语言yii2框架 yii2项目中如何使用redis,希望能帮助到大家,更多相关信息,敬请关注我爱编程网!