lorenzo / redis
CakePHP 对 Redis 键值数据库的支持
2.0
2021-10-25 09:01 UTC
Requires
- cakephp/database: 4.2.x
- cakephp/datasource: 4.2.x
Requires (Dev)
- cakephp/log: @stable
- phpunit/phpunit: @stable
- predis/predis: ^1.1
Suggests
- cakephp/log: Require this if you want to use the built-in command logger
This package is auto-updated.
Last update: 2024-08-25 14:50:52 UTC
README
此库使得能够使用 CakePHP 的 ConnectionManager
创建和管理任何 Redis 数据库的连接成为可能。
Redis 是一个性能卓越的键值数据库。它还提供了许多独特的功能,可以用于处理大型列表、哈希表,甚至是 pub-sub 系统。
连接到 redis 数据库
此库假设您已经安装了 phpredis
或 predis
。我们推荐安装 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()
命令。