项目中的缓存使用了 redis,然后在单独使用 Redis 。
每次 svn 提交,默认会清除缓存,使用的是:php artisan cache:clear 命令。问题来了,我正常使用的 Redis 数据也被清理掉了,当前选择的 redis 库里面数据都没了。
搜索了一圈,确实如此。
解决方案:缓存用的 redis 库要和平时的 redis 库分开:
1、配置文件 database.php 修改,在 redis 这一列增加一个连接配置。
'redis' => [ 'client' => 'phpredis', 'default' => [ 'host' => env('REDIS_HOST', '127.0.0.1'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 6379), 'database' => 0, //必须和缓存使用的数据库分开,因为,artisan cache:clear 的时候会把这个库的数据都清空哦 'prefix' => env('REDIS_PREFIX', 'phpriji'), //key 前缀 'read_timeout' => 10, //连接超时时间 ], //缓存专用 'cache' => [ 'host' => env('REDIS_HOST', '127.0.0.1'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 6379), 'database' => 4, //缓存使用的数据库,artisan cache:clear 的时候会把这个库的数据都清空哦 'prefix' => env('REDIS_PREFIX', 'phpriji'), //key 前缀 'read_timeout' => 10, //连接超时时间 ], ],
2、修改 cache.php 配置
'redis' => [ 'driver' => 'redis', 'connection' => 'cache', //指定用 redis cache 专用的连接,避免 artisan cache:clear 带来的误删除 ],
然后就可以了。