lorenzo/redis

CakePHP 对 Redis 键值数据库的支持

安装量: 104,854

依赖项: 0

建议者: 0

安全: 0

星标: 6

关注者: 4

分支: 9

公开问题: 1

类型:cakephp-plugin

2.0 2021-10-25 09:01 UTC

This package is auto-updated.

Last update: 2024-08-25 14:50:52 UTC


README

此库使得能够使用 CakePHP 的 ConnectionManager 创建和管理任何 Redis 数据库的连接成为可能。

Redis 是一个性能卓越的键值数据库。它还提供了许多独特的功能,可以用于处理大型列表、哈希表,甚至是 pub-sub 系统。

连接到 redis 数据库

此库假设您已经安装了 phpredispredis。我们推荐安装 phpredis

在 app.php 文件中配置它

只需在 Datasources 键下添加任何新的命名配置

    'Datasources' => [
        ...
        'redis' => [
            'className' => 'Cake\Redis\RedisConnection',
            'driver' => 'phpredis', // Can also use a full class name or 'predis'
            'log' => false, // Log executed commands
            'host' => '127.0.0.1',
            'port' => 6379,
            'timeout' => [optional],
            'reconnectionDelay' => [optional],
            'persistentId' => [optional],
            'database' => [optional],
            'options' => [], // extra options for the driver
        ]
    ]

使用 ConnectionManager

您也可以使用 ConnectionManager 创建新的 Redis 连接

use Cake\Datasource\ConnectionManager;

ConnectionManager::config('redis', [
    'className' => 'Cake\Redis\RedisConnection',
    'driver' => 'Cake\Redis\Driver\PHPRedisDriver',
    'log' => false, // Log executed commands
    'host' => '127.0.0.1',
    'port' => 6379,
    'timeout' => [optional],
    'reconnectionDelay' => [optional],
    'persistentId' => [optional],
    'database' => [optional],
    'options' => [], // extra options for the driver
]);

在 Redis 中执行命令

您需要获取连接并执行命令

$redis = ConnectionManager::get('redis');
$redis->set('cakephp', 'awesome');
echo $redis->get('cakephp'); // Returns 'awesome'

请确保您查看 PHPRedis Readme 中可以运行的所有命令。

在事务中执行命令列表

$redis = ConnectionManager::get('redis');
$redis->transactional(function ($client) {
    $client
        ->set('cakephp', 'awesome')
        ->set('another_key', 'value')
});

闭包获得的客户端实例将缓冲所有命令,并在链的末尾原子性地执行它们。

此方法内部使用 multi() 命令。