laravel操作redis和缓存操作
一:操作redis
1:redis拓展安装
composer require predis/predis
或者你也可以通过 PECL 安装 PhpRedis PHP 扩展,安装方法比较复杂,个人不推荐
2:配置redis
在config/database.php文件中配置redis
(1):单个redis配置
-
'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集群配置
-
'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,
-
],
-
],
-
],
-
-
],
3:操作redis
(1):设置redis
Redis::set('val1','asdasd');
(2):获取redis
Redis::get('key')
(3):删除redis
Redis::del('key');
二:缓存操作
1:缓存配置
laravel框架的缓存配置在config/cache.php文件中,配置参数有:
(1):配置cache的驱动
'default' => env('CACHE_DRIVER', 'file'),
Laravel 自带了几个不错且可开箱即用的驱动
-
file - 将 Session 保存在 framework/cache/data 中。
-
cookie - Session 保存在安全加密的 Cookie 中。
-
database - Session 保存在关系型数据库中。
-
memcached / redis - Sessions 保存在其中一个快速且基于缓存的存储系统中。
-
array - Sessions 保存在 PHP 数组中,不会被持久化。
(2):根据你所选的驱动配置
-
'stores' => [
-
-
'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配置
-
'database' => [
-
'driver' => 'database',
-
'table' => 'cache',//配置的缓存表名
-
'connection' => null,//连接名,这个是在config/database.php文件配置的,不进行配置使用默认连接的数据库
-
],
你选择了database作为缓存驱动的话,在目录命令行执行
-
php artisan cache:table
-
php artisan migrate
这时候会在数据库生成一个cache表用于存储缓存数据
-
如果你选择了file作为驱动时,就需要修改stores内的file配置
-
'file' => [
-
'driver' => 'file',
-
'path' => storage_path('framework/cache/data'),//这里配置的是缓存数据保存地址
-
],
-
如果你选择了redis作为驱动时,就需要修改stores内的redis配置
-
'redis' => [
-
'driver' => 'redis',
-
'connection' => 'default',//redis的连接名,对应config/database.php文件的redis配置,如果不进行配置使用默认的redis连接配置
-
],
2:缓存操作
(1):设置缓存
-
Cache::put('key', 'value', $minutes);
-
-
//将不存在于缓存中的数据放入缓存中,如果存放成功返回 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')
-
-
//传递第二个参数,用来指定如果查找的数据不存在时,你希望返回的默认值
-
$value = Cache::get('key', 'default');
-
-
//第二个参数传递 Closure 作为默认值。如果指定的数据不存在于缓存中,将返回 Closure 的结果
-
$value = Cache::get('key', function () {
-
return DB::table(...)->get();
-
});
-
-
//判断缓存是否存在,如果值为 null 或 不存在返回false
-
Cache::has('key')
(3):删除缓存
-
//从缓存中获取到数据之后再删除它,如果缓存中不存在该数据, 则返回 null
-
$value = Cache::pull('key');
-
//删除缓存
-
Cache::forget('key');
-
//清空缓存
-
Cache::flush();
(4):缓存递增递减
increment 和 decrement 方法可以用来调整高速缓存中整数项的值。这两个方法都可以传入第二个可选参数,用来指示要递增或递减值的数量
注意:使用increment和decrement前提对应的缓存之前必须有缓存数据,不然返回NULL
-
Cache::increment('key');
-
Cache::increment('key', 2);
-
Cache::decrement('key');
-
Cache::decrement('key', 2);
(5):使用多种缓存方式
如果你想要使用多种缓存,你可以使用下面这种形式操作缓存,其他方法同理
-
$value = Cache::store('file')->get('foo');//获取
-
Cache::store('redis')->put('bar', 'baz', 10);//设置
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfcihi
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01