我正在尝试在需要 PSR-16 缓存的包中使用 laravel redis 缓存。我找到了以下方法来实现这一点:
class_alias('\Predis\Client', '\Redis'); // rename \Predis\Client to \Redis
$client = Redis::connection('default');
$pool = new \Cache\Adapter\Redis\RedisCachePool($client->client());
$simpleCache = new \Cache\Bridge\SimpleCache\SimpleCacheBridge($pool);
$psr16_cache = new SimpleCacheTokenPersistence($simpleCache);
如您所见...第一行非常骇人听闻! RedisCachePool 接受的类名,它将只接受一个\Redis 对象。
无论我尝试了什么,我都无法让 Laravel 提供 Redis 对象,即使 Predis\Client 是相同的。
除了 hack,我的另一个选择是 fork php-cache/redis-adapter 包,但同样不理想。
有人可以对此提出任何解决方法吗?
最佳答案
您应该使用 predis-adapter
而不是 redis-adapter
composer 需要缓存/predis-adapter
关于php - Laravel PSR-16 缓存。适配\Predis\Client 到\Redis?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52692746/