或者你也可以通过 PECL 安装 PhpRedis PHP 扩展,安装方法比较复杂,个人不推荐
在config/database.php文件中配置redis
(1):单个redis配置
‘client’=> env(‘REDIS_CLIENT’, ‘predis’),//别名,如果你安装的是PhpRedis,将client值改为phpredis
‘default’=> [
‘host’=> env(‘REDIS_HOST’, ‘127.0.0.1’),//redis服务器主机
‘password’=> env(‘REDIS_PASSWORD’, null),//redis服务器密码
‘port’=> env(‘REDIS_PORT’, 6379),//redis服务器端口
‘database’=> env(‘REDIS_DB’, 0),
],
‘cache’=> [
‘host’=> env(‘REDIS_HOST’, ‘127.0.0.1’),//redis服务器主机
‘password’=> env(‘REDIS_PASSWORD’, null),//redis服务器密码
‘port’=> env(‘REDIS_PORT’, 6379),//redis服务器端口
‘database’=> env(‘REDIS_CACHE_DB’, 1),
],
],
(2):redis集群配置
‘client’=> env(‘REDIS_CLIENT’, ‘predis’),
‘clusters’=> [
‘default’=> [
[
‘host’=> env(‘REDIS_HOST’, ‘localhost’),
‘password’=> env(‘REDIS_PASSWORD’, null),
‘port’=> env(‘REDIS_PORT’, 6379),
‘database’=> 0,
],
],
],
],
(1):设置redis
(2):获取redis
(3):删除redis
laravel框架的缓存配置在config/cache.php文件中,配置参数有:
(1):配置cache的驱动
Laravel 自带了几个不错且可开箱即用的驱动
• file – 将 Session 保存在 framework/cache/data 中。
• cookie – Session 保存在安全加密的 Cookie 中。
• database – Session 保存在关系型数据库中。
• memcached / redis – Sessions 保存在其中一个快速且基于缓存的存储系统中。
• array – Sessions 保存在 PHP 数组中,不会被持久化。
(2):根据你所选的驱动配置
‘apc’=> [
‘driver’=> ‘apc’,
],
‘array’=> [
‘driver’=> ‘array’,
],
‘database’=> [
‘driver’=> ‘database’,
‘table’=> ‘cache’,
‘connection’=> null,
],
‘file’=> [
‘driver’=> ‘file’,
‘path’=> storage_path(‘framework/cache/data’),
],
‘memcached’=> [
‘driver’=> ‘memcached’,
‘persistent_id’=> env(‘MEMCACHED_PERSISTENT_ID’),
‘sasl’=> [
env(‘MEMCACHED_USERNAME’),
env(‘MEMCACHED_PASSWORD’),
],
‘options’=> [
// Memcached::OPT_CONNECT_TIMEOUT=> 2000,
],
‘servers’=> [
[
‘host’=> env(‘MEMCACHED_HOST’, ‘127.0.0.1’),
‘port’=> env(‘MEMCACHED_PORT’, 11211),
‘weight’=> 100,
],
],
],
‘redis’=> [
‘driver’=> ‘redis’,
‘connection’=> ‘cache’,
],
‘dynamodb’=> [
‘driver’=> ‘dynamodb’,
‘key’=> env(‘AWS_ACCESS_KEY_ID’),
‘secret’=> env(‘AWS_SECRET_ACCESS_KEY’),
‘region’=> env(‘AWS_DEFAULT_REGION’, ‘us-east-1’),
‘table’=> env(‘DYNAMODB_CACHE_TABLE’, ‘cache’),
‘endpoint’=> env(‘DYNAMODB_ENDPOINT’),
],
],
• 如果你选择了的database作为驱动的时,就需要修改stores内的database配置
‘driver’=> ‘database’,
‘table’=> ‘cache’,//配置的缓存表名
‘connection’=> null,//连接名,这个是在config/database.php文件配置的,不进行配置使用默认连接的数据库
],
你选择了database作为缓存驱动的话,在目录命令行执行
php artisan migrate
这时候会在数据库生成一个cache表用于存储缓存数据
• 如果你选择了file作为驱动时,就需要修改stores内的file配置
‘driver’=> ‘file’,
‘path’=> storage_path(‘framework/cache/data’),//这里配置的是缓存数据保存地址
],
• 如果你选择了redis作为驱动时,就需要修改stores内的redis配置
‘driver’=> ‘redis’,
‘connection’=> ‘default’,//redis的连接名,对应config/database.php文件的redis配置,如果不进行配置使用默认的redis连接配置
],
(1):设置缓存
//将不存在于缓存中的数据放入缓存中,如果存放成功返回 true ,否则返回 false
Cache::add(‘key’, ‘value’, $minutes);
//数据永久存入缓存
Cache::forever(‘key’, ‘value’);
//获取users缓存,如果不存在,执行第三个参数,将返回值存入缓存
$value=Cache::remember(‘users’, $minutes, function () {
return DB::table(‘users’)->get();
});
//获取users缓存,如果不存在,执行第三个参数,将返回值存入缓存并永久储存
$value=Cache::rememberForever(‘users’, function() {
return DB::table(‘users’)->get();
});
(2):获取缓存
//传递第二个参数,用来指定如果查找的数据不存在时,你希望返回的默认值
$value=Cache::get(‘key’, ‘default’);
//第二个参数传递 Closure 作为默认值。如果指定的数据不存在于缓存中,将返回 Closure 的结果
$value=Cache::get(‘key’, function () {
return DB::table(…)->get();
});
//判断缓存是否存在,如果值为 null 或 不存在返回false
Cache::has(‘key’)
(3):删除缓存
$value=Cache::pull(‘key’);
//删除缓存
Cache::forget(‘key’);
//清空缓存
Cache::flush();
(4):缓存递增递减
increment 和 decrement 方法可以用来调整高速缓存中整数项的值。这两个方法都可以传入第二个可选参数,用来指示要递增或递减值的数量
注意:使用increment和decrement前提对应的缓存之前必须有缓存数据,不然返回NULL
Cache::increment(‘key’, 2);
Cache::decrement(‘key’);
Cache::decrement(‘key’, 2);
(5):使用多种缓存方式
如果你想要使用多种缓存,你可以使用下面这种形式操作缓存,其他方法同理
Cache::store(‘redis’)->put(‘bar’, ‘baz’, 10);//设置
以上就是Laravel操作redis和缓存操作详解的详细内容,更多关于Laravel操作redis 缓存操作的资料请关注脚本之家其它相关文章!