$cache = Yii::$app->cache;
$cache->set($key, $data, 3600);
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache', // 文件缓存组件
'cachePath' => '@runtime/cache', // 缓存文件保存路径
],
]
$cache = Yii::$app->cache;
$key = 'cacheid'; // 缓存的key值,可以随便定义,但要确保读取和保存使用的是同一个key值
$data = $cache->get($key); // 读取缓存中的数据
if($data === false)
{
$data = \common\models\GoodsModel::find()->limit(10);// 要缓存的数据
$cache->set($key, $data, 3600);
}
// 删除一个缓存
$cache->delete($key);
// 清除所有缓存
$cache->flush();
相比于文件缓存,Redis缓存具有更高效的性能。在ShopWind系统中,我们可以将Redis作为缓存组件来使用,扩展中的yii\redis\Cache实现了缓存相关接口,用法跟文件缓存一样。 在使用Redis缓存前,您需要做以下操作:
1、配置Redis服务,可以参照《Redis拓展》中的Redis配置 完成Redis组件的连接设置。
2、修改配置文件@shopwind\common\config\main.php的cache节点如下:
'components' => [
'cache' => [
// 'class' => 'yii\caching\FileCache',
'class' => 'yii\redis\Cache',
],
]
'components' => [
'cache' => [
// 'class' => 'yii\caching\FileCache',
'class' => 'yii\redis\Cache',
'redis' => [
'hostname' => 'localhost',
'port' => 6379, // 如果是SSL连接,请配置为6380
'database' => 0,
]
]
]
// 获取缓存对象
$cache = Yii::$app->cache;
// 读取缓存中的数据
$data = $cache->get($key);
// 保存数据到缓存
$cache->set($key, $data, 3600);
// 删除一个缓存
$cache->delete($key);
// 清除所有缓存
$cache->flush();
MemCache 通过设置 $servers 属性来配置 memcache 服务器列表。 默认情况下,MemCache 会认为有一个服务器运行在 localhost 的 11211 端口。
要把 MemCache 当作缓存应用组件使用,参考下述的配置:
1、在开启MemCache缓存之前,请确保在服务端已经安装了MemCache服务,否则会造成页面无法访问,请开放11211端口(默认)及设置好白名单,MemCache服务可以为本地安装(使用宝塔可以一键安装),也可以是云端,例如:阿里云的【云数据库MemCache】产品, 开启服务之后,配置php.ini启用 php_memcache.dll/php_memcached.dll 拓展。
2、修改配置文件,路径为@shopwind\common\config\main.php,如下代码:
'components' => [
'cache' => [
'class' => 'yii\caching\MemCache',
'servers' => [
[
'host' => 'localhost',
'port' => 11211,
'weight' => 60,
]
// ...
]
'useMemcached' => true // true 使用 memcached, false 使用 memcache
]