yiisoft / cache-redis
Yii 缓存库 - Redis 处理器
2.0.0
2023-07-10 16:05 UTC
Requires
- php: ^8.0
- predis/predis: ^2.1
- psr/simple-cache: ^2.0|^3.0
Requires (Dev)
- maglnet/composer-require-checker: ^4.4
- phpunit/phpunit: ^9.5
- rector/rector: ^0.17.2
- roave/infection-static-analysis-plugin: ^1.16
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.30 || ^5.13
Provides
This package is auto-updated.
Last update: 2024-09-16 07:40:45 UTC
README
Yii 缓存库 - Redis 处理器
此包提供了 Redis 处理器并实现了 PSR-16 缓存。
要求
- PHP 8.0 或更高版本。
安装
此包可以使用 Composer 进行安装。
composer require yiisoft/cache-redis
通用用法
有关客户端实例和连接配置的更多信息,请参阅 predis/predis 包的文档。
/** * @var \Predis\ClientInterface $client Predis client instance to use. */ $cache = new \Yiisoft\Cache\Redis\RedisCache($client);
除了在 PSR-16 接口中定义的功能外,此包不包含与缓存交互的任何附加功能。
$parameters = ['user_id' => 42]; $key = 'demo'; // try retrieving $data from cache $data = $cache->get($key); if ($data === null) { // $data is not found in cache, calculate it from scratch $data = calculateData($parameters); // store $data in cache for an hour so that it can be retrieved next time $cache->set($key, $data, 3600); } // $data is available here
为了删除值,您可以使用
$cache->delete($key); // Or all cache $cache->clear();
为了更有效地处理值,应使用批处理操作
getMultiple()
setMultiple()
deleteMultiple()
此包可以作为 Yii Caching Library 的缓存处理器使用。
支持 Redis 集群
此包通过 Predis
包实现了对 Redis 集群 的支持。
例如,如果您的集群配置有三个主节点和三个从节点,则客户端配置可能如下所示
$client = new \Predis\Client([ ['host' => 'redis-node-1', 'port' => 'redis-node-port-1',], ['host' => 'redis-node-2', 'port' => 'redis-node-port-2',], ['host' => 'redis-node-3', 'port' => 'redis-node-port-3',], ['host' => 'redis-node-4', 'port' => 'redis-node-port-4',], ['host' => 'redis-node-5', 'port' => 'redis-node-port-5',], ['host' => 'redis-node-6', 'port' => 'redis-node-port-6',], ], [ 'cluster' => 'redis', 'parameters' => [ 'password' => 'Password', ], ] ); $cache = new \Yiisoft\Cache\Redis\RedisCache($client);
Predis 会根据命令中指定的键自动将命令路由到集群中的适当节点。
您可以通过实现 \Predis\Distribution\DistributorInterface
来创建客户端用于在服务器集群中分配键的自定义分发器。
然后,您的配置可能如下所示
$client = new \Predis\Client([ ['host' => 'redis-node-1', 'port' => 'redis-node-port-1',], ['host' => 'redis-node-2', 'port' => 'redis-node-port-2',], ['host' => 'redis-node-3', 'port' => 'redis-node-port-3',], ['host' => 'redis-node-4', 'port' => 'redis-node-port-4',], ['host' => 'redis-node-5', 'port' => 'redis-node-port-5',], ['host' => 'redis-node-6', 'port' => 'redis-node-port-6',], ], [ 'cluster' => static function () { $distributor = new \CustomDistributor(); // Your custom distributor $strategy = new \Predis\Cluster\PredisStrategy($distributor); return new \Predis\Connection\Cluster\PredisCluster($strategy); }, 'parameters' => [ 'password' => 'Password', ], ] );
文档
如果您需要帮助或有问题,Yii 论坛 是一个好去处。您还可以查看其他 Yii 社区资源。
许可
Yii 缓存库 - Redis 处理器是免费软件。它根据 BSD 许可证的条款发布。有关更多信息,请参阅 LICENSE
。
由 Yii 软件 维护。