【Yii2】使用Redis
在 Yii2 中使用 Redis 非常简单。首先,确保您已经安装了 Redis 扩展,并在 common/config/main-local.php
文件中配置了 Redis 组件:
return [
// ...
'components' => [
// ...
'redis' => [
'class' => 'yii\redis\Connection',
'hostname' => 'localhost',
'port' => 6379,
'database' => 0,
],
// ...
],
// ...
];
然后,您可以在 Yii2 应用程序中使用 Redis 来存储和检索数据。
一下是两种连接方式:
1.Redis::getRedisInstance()->getRedisConn();
这种方法来自
common\components\Redis
类。它是一个自定义的 Redis 组件,通常在common\config\main-local.php
文件中配置。这个组件提供了一些额外的功能,例如自动重连、记录日志等。使用这种方法获取 Redis 缓存连接实例时,您将获得一个封装了 Redis 连接的对象,该对象提供了一些额外的方法,例如getRedisConn()
。
//使用助手函数
use common\helpers\Redis;
Redis::getRedisInstance()->getRedisConn();
2.Yii::$app->redis;
这种方法是通过 Yii2 的依赖注入容器获取 Redis 缓存组件的实例。默认情况下,Yii2 不包含自定义的 Redis 组件,因此您需要在
common\config\main-local.php
文件中手动配置 Redis 组件。使用这种方法获取 Redis 缓存连接实例时,您将直接获得 Redis 连接对象,而不是封装了 Redis 连接的对象。
use Yii;
$redis = Yii::$app->redis;
总之,Redis::getRedisInstance()->getRedisConn();
和 Yii::$app->redis;
都可以用于获取 Redis 缓存连接实例,但它们分别使用自定义的 Redis 组件和 Yii2 的依赖注入容器。如果您需要使用自定义的 Redis 组件提供的额外功能,可以使用 Redis::getRedisInstance()->getRedisConn();
。否则,您可以使用 Yii::$app->redis;
。
3.以下是一些常见的 Redis 操作示例:
use Yii;
$redis = Yii::$app->redis;
// 1.将值存储到 Redis 缓存:
$redis->set('key', 'value');
// 2.从 Redis 缓存中获取值:
$value = $redis->get('key');
// 3.将值存储到 Redis 缓存的哈希集中:
$redis->hset('hash', 'field', 'value');
// 4.从 Redis 缓存的哈希集中获取值:
$value = $redis->hget('hash', 'field');
// 5.将值添加到 Redis 缓存的列表中:
$redis->lpush('list', 'value');
// 6. 从 Redis 缓存的列表中获取值:
$value = $redis->rpop('list');
// 7.将值添加到 Redis 缓存的集合中:
$redis->sadd('set', 'value');
// 8.检查 Redis 缓存的集合中是否存在某个值:
$exists = $redis->sismember('set', 'value');
这些示例仅涵盖了 Redis 缓存组件的基本操作。实际上,Yii2 的 Redis 缓存组件支持 Redis 的大多数操作,您可以在 https://www.yiiframework.com/extension/yiisoft/yii2-redis 中找到完整的操作列表。