davidepedone/laravel-redis-fallback

Laravel 4 Redis 缓存回退到文件

v1.0.1 2015-03-23 18:29 UTC

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'
	...
)

享受吧!