davidepedone / laravel-redis-fallback
Laravel 4 Redis 缓存回退到文件
v1.0.1
2015-03-23 18:29 UTC
Requires
- php: >=5.4.0
- illuminate/support: 4.2.*
This package is not auto-updated.
Last update: 2024-09-28 17:12:35 UTC
README
如果您在 Laravel 4 中使用 Redis 作为缓存驱动程序,并且由于某种原因 Redis 服务器变得不可用,您将遇到连接被拒绝的异常。此包简单地检查连接,如果测试失败,则将缓存切换到文件驱动程序。一旦 Redis 恢复,它将再次被使用。
##工作原理 LaravelRedisFallbackServiceProvider
类继承自 Illuminate\Cache\CacheServiceProvider
并覆盖了 register()
方法,如下所示
public function register(){ $this->app->bindShared('cache', function($app){ return new \Davidepedone\LaravelRedisFallback\LaravelRedisFallback($app); }); ... }
LaravelRedisFallback
类继承自 Illuminate\Cache\CacheManager
并覆盖了 createRedisDriver()
方法,如下所示
protected function createRedisDriver() { $redis = $this->app['redis']; $redisStore = new RedisStore($redis, $this->getPrefix()); try{ $redisStore->getRedis()->ping(); return $this->repository( $redisStore ); }catch(\Exception $e){ return parent::createFileDriver(); } }
##如何使用 将 LaravelRedisFallback 作为 Composer 包安装,在您的 composer.json 中添加以下行
"davidepedone/laravel-redis-fallback": "dev-master"
然后运行 composer update
命令更新您的 vendor 文件夹。
替换默认的缓存服务提供程序
'providers' => array( ... //'Illuminate\Cache\CacheServiceProvider', ... 'Davidepedone\LaravelRedisFallback\LaravelRedisFallbackServiceProvider' ... )
享受吧!