当前位置: 首页 > news >正文

有没有做代理商的明细网站/北京十大营销策划公司

有没有做代理商的明细网站,北京十大营销策划公司,网络公司经营范围和管理条例,深圳做手机网站建设简介 yii2-redis 扩展为 Yii2 框架提供了 redis 键值存储支持。包括缓存(Cache)、会话存储处理(Session),并实现了 ActiveRecord 模式,允许您将活动记录存储在 redis 中。 相关链接 yii2-redis 扩展网址…

简介

yii2-redis 扩展为 Yii2 框架提供了 redis 键值存储支持。包括缓存(Cache)、会话存储处理(Session),并实现了 ActiveRecord 模式,允许您将活动记录存储在 redis 中。

相关链接

  • yii2-redis 扩展网址:https://github.com/yiisoft/yii2-redis

安装扩展

在 Yii2 项目根目录,执行以下命令安装:

$ composer require yiisoft/yii2-redis

也可以先在 composer.json 文件中声明如下依赖:

"yiisoft/yii2-redis": "~2.0.0"

再执行下面命令安装:

$ composer update

基本使用

继续阅读请确保已安装并开启了 redis 服务,安装请参考《Redis 安装》。

1. 配置

在组件中添加如下配置:

'components' => ['redis' => ['class' => 'yii\redis\Connection','hostname' => 'localhost','port' => 6379,'database' => 0,],
]  

2. 示例

下面代码演示了 redis 最基本的 string 类型的使用:

// 获取 redis 组件
$redis = Yii::$app->redis;// 判断 key 为 username 的是否有值,有则打印,没有则赋值
$key = 'username';
if ($val = $redis->get($key);) {var_dump($val);
} else {$redis->set($key, 'marko');$redis->expire($key, 5);
}

这个类中(yii\redis\Connection)提供了操作 redis 所有的数据类型和服务(String、Hash、List、Set、SortedSet、HyperLogLog、GEO、Pub/Sub、Transaction、Script、Connection、Server)所需要的方法,并且和 redis 中的方法同名,如果不清楚可以直接到该类中查看。

缓存组件

该扩展中的 yii\redis\Cache 实现了 Yii2 中的缓存相关接口,所以我们也可以用 redis 来存储缓存,且用法和原来一样。

1. 配置

修改组件中 cache 的 class 为 yii\redis\Cache 即可,配置如下:

'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,],],
],

2. 示例

下面代码演示了缓存的基本使用:

// 获取 cache 组件
$cache = Yii::$app->cache;// 判断 key 为 username 的缓存是否存在,有则打印,没有则赋值
$key = 'username';
if ($cache->exists($key)) {var_dump($cache->get($key));
} else {$cache->set($key, 'marko', 60);
}

使用文件缓存(FileCache)时,缓存是存储在 runtime/cache 目录下;使用 redis 缓存后,缓存将存储在 redis 数据库中,性能将大大提高。

会话组件

该扩展中的 yii\redis\Session 实现了 Yii2 中的会话相关接口,所以我们也可以用 redis 来存储会话信息,且用法和原来一样。

1. 配置

修改组件 session 的配置,指定 class 为 yii\redis\Session 即可,配置如下:

'components' => ['session' => ['name' => 'advanced-frontend','class' => 'yii\redis\Session'],
],

如果没有配置过 redis 组件,需要在 session 组件下配置 redis 服务相关参数,完整配置如下:

'components' => ['session' => ['name' => 'advanced-frontend','class' => 'yii\redis\Session','redis' => ['hostname' => 'localhost','port' => 6379,'database' => 0,],],
],

2. 使用

在开发过程中,切记一定不要使用 PHP 原生的 $_SESSION 去操作,而要使用 Yii 提供的 session 组件,获取方式如下:

$session = Yii::$app->session;

ActiveRecord

该扩展中的 yii\redis\ActiveRecord 实现了 Yii2 中的 ActiveRecord 相关接口,所以我们可以使用 AR 的方式操作 redis 数据库。关于如何使用 Yii 的 ActiveRecord,请阅读权威指南中有关 ActiveRecord 的基础文档。

定义 redis ActiveRecord 类,我们的模型需要继承 yii\redis\ActiveRecord,并至少实现 attributes() 方法来定义模型的属性。

主键可以通过 yii\redis\ActiveRecord::primaryKey() 定义,如果未指定,则默认为 id。 primaryKey 必须在 attributes() 方法定义的属性中,如果没有指定主键,请确保 id 在属性中。

下面定义一个 Customer 模型来演示:

class Customer extends \yii\redis\ActiveRecord
{/*** 主键 默认为 id** @return array|string[]*/public static function primaryKey(){return ['id'];}/*** 模型对应记录的属性列表** @return array*/public function attributes(){return ['id', 'name', 'age', 'phone', 'status', 'created_at', 'updated_at'];}/*** 定义和其它模型的关系** @return \yii\db\ActiveQueryInterface*/public function getOrders(){return $this->hasMany(Order::className(), ['customer_id' => 'id']);}}

使用示例:

// 使用 AR 方式新增一条记录
$customer = new Customer();
$customer->name = 'marko';
$customer->age = 18;
$customer->phone = 13888888888;
$customer->status = 1;
$customer->save();
echo $customer->id;// 使用 AR 查询
$customer = Customer::findOne($customer->id);
$customer = Customer::find()->where(['status' => 1])->all();

redis ActiveRecord 的一般用法与权威指南中数据库的 ActiveRecord 用法非常相似。它们支持相同的接口和方法,除了以下限制:

  • 由于 redis 不支持 sql,查询方法仅限于使用以下方法:where(),limit(),offset(),orderBy() 和 indexBy()。 【 orderBy() 尚未实现:#1305)】
  • 由于 redis 没有表的概念,因此不能通过表定义关联关系,只能通过其它记录来定义关系。

直接使用命令

直接使用 redis 连接,就可以使用 redis 提供的很多有用的命令。配置好 redis 后,用以下方式获取 redis 组件:

$redis = Yii::$app->redis;

然后就可以执行命令了,最通用的方法是使用 executeCommand 方法:

$result = $redis->executeCommand('hmset', ['test_collection', 'key1', 'val1', 'key2', 'val2']);

支持的每个命令都有一些快捷方式,可以按照如下方式使用:

$result = $redis->hmset('test_collection', 'key1', 'val1', 'key2', 'val2');

有关可用命令及其参数的列表,请参阅 redis 命令:

  • redis 命令英文版:http://redis.io/commands
  • redis 命令中文版:http://redisdoc.com

本文首发于马燕龙个人博客,欢迎分享,转载请标明出处。 马燕龙个人博客:http://www.mayanlong.com 马燕龙个人微博:http://weibo.com/imayanlong 马燕龙Github主页:https://github.com/yanlongma

 

 

 

http://www.lbrq.cn/news/838873.html

相关文章:

  • 网站优化计划书/bing搜索引擎下载
  • 怎么查域名是否被注册/什么是关键词排名优化
  • java怎么做直播网站/郑州百度推广公司
  • 三亚网红打卡景点/南宁seo优化
  • 城乡建设网站宁德/如何做好品牌推广工作
  • 信阳公司网站建设/西安网站快速排名提升
  • 天津开发区建网站公司/简述获得友情链接的途径
  • 注销网站 注销主体/中国十大网络销售公司
  • 开发小程序游戏需要多少钱/青岛seo
  • 湖南交通建设监理协会网站/微信营销号
  • 武汉建站网站/广告投放平台都有哪些
  • web前端开发案例/北京自动seo
  • 网站开发预算表/网上怎么免费推广
  • 大连建设工业产品网站/搜索排名怎么做
  • 做外卖系统哪家网站做的好/外贸营销网站建设
  • 搜索网站的浏览器/谷歌seo和百度seo区别
  • 国外室内设计网站大全/建立网站要多少钱一年
  • 无锡做食品网站的公司简介/优化推广网站怎么做最好
  • 南岸网站建设哪家好/免费广告发布平台
  • 是做网站的怀孕后/百度商家平台登录
  • 四川做网站多少钱/站长源码
  • 网站建设推广入什么费用/广告接单平台app
  • 自己的主机做网站服务器/it培训班
  • 专门做企业名录的网站/谷歌seo怎么做
  • 衢州网站建设平台/seo的特点是什么
  • 天津做网站外包公司有哪些/web网址
  • 本地东莞网站建设/官方百度下载安装
  • hbuider 做网站/seminar什么意思中文
  • b2b电子商务网站的收益模式是什么?/爱站长尾词挖掘工具
  • 大连做网站 智域/站长工具app官方下载
  • 闲庭信步使用图像验证平台加速FPGA的开发:第二十一课——高斯下采样后图像还原的FPGA实现
  • 【Elasticsearch】Elasticsearch 快照恢复 API 参数详解
  • 界面控件Kendo UI for Angular 2025 Q2新版亮点 - 增强跨设备的无缝体验
  • rLLM:用于LLM Agent RL后训练的创新框架
  • AI辅助Python编程30天速成
  • StampedLock分析