当前位置: 首页 > 后端技术 > PHP

Laravel操作redis和缓存操作

时间:2023-03-30 00:13:08 PHP

1:操作redis1:redis扩展installcomposerrequirepredis/predis也可以通过PECL安装PhpRedisPHP扩展,安装方法比较复杂,个人不推荐2:在config中配置redis/数据库。在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服务器密码'端口'=>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'=>['默认'=>[['主机'=>env('REDIS_HOST','localhost'),'password'=>env('REDIS_PASSWORD',null),'port'=>env('REDIS_PORT',6379),'database'=>0,],],]],3:操作redis(1):setredisRedis::set('val1','asdasd');(2):获取redisRedis::get('key')(3):删除redisRedis::del('key');二:缓存操作1:缓存配置laravel框架的缓存配置在config/cache.php文件中,配置参数为:(1):配置缓存驱动'default'=>env('CACHE_DRIVER','file'),Laravel带有几个很好的开箱即用的驱动程序?文件-将会话保存在框架/缓存/数据中?cookie-将会话保存在一个安全加密的cookie中。?数据库——会话存储在关系数据库中。?memcached/redis-会话保存在这些基于缓存的快速存储系统之一中。?array-会话存储在一个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'),'端口'=>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_EN??DPOINT'),],],?如果选择数据库作为驱动,需要修改stores里面数据库配置'database'=>['driver'=>'database','table'=>'cache',//配置的缓存表名'connection'=>null,//连接名,这个在config/database.php文件已配置,不配置使用默认连接数据库],如果选择数据库作为缓存驱动,在目录命令行执行phpartisancache:tablephpartisanmigrate,会生成缓存表在数据库中用于存储缓存数据?如果选择文件作为驱动,则需要修改文件c商店配置'file'=>['driver'=>'file','path'=>storage_path('framework/cache/data'),//这里配置缓存数据存储地址],?如果选择redis作为驱动,需要修改stores'redis'中的redis配置=>['driver'=>'redis','connection'=>'default',//redis连接名,对应config/database.php文件的redis配置,如果没有配置,使用默认的redis连接配置],2:缓存操作(一):设置缓存Cache::put('key','value',$minutes);//将缓存中不存在的数据放入缓存中,如果存储成功,returntrue,否则返回falseCache::add('key','value',$minutes);//数据永久保存在缓存中Cache::forever('key','value');//获取users缓存,如果不存在则执行第三个参数,将返回值存入缓存$value=Cache::remember('users',$minutes,function(){returnDB::table('users')->get();});//获取用户缓存,如果不存在则执行第三个参数,将返回值存入缓存并永久保存$value=Cache::rememberForever('users',function(){returnDB::table('users')->get();});(2):获取缓存$value=Cache::get('key')//传递第二个参数指定如果要查找的数据不存在则要返回的默认值$value=Cache::get('key','default');//第二个参数传闭包作为默认值如果缓存中不存在指定数据,则返回闭包结果$value=Cache::get('key',function(){returnDB::table(...)->get();});//判断缓存是否存在,如果值为null或者不存在,则返回falseCache::has('key')(3):删除缓存//从缓存中获取数据后删除,如果数据缓存中不存在,则返回null$value=Cache::pull('key');//删除缓存Cache::forget('key');//清空缓存Cache::flush();(4):cacheincrementdecrementincrement和decrement方法可以用来调整缓存中整数条目的值。这两种方法都可以传入第二个可选参数,该参数用于指示要递增或递减的值的个数。注意:使用自增自减前对应的缓存必须有缓存数据,否则返回NULLCache::increment('key');Cache::increment('key',2);Cache::decrement('key');Cache::decrement('key',2);(5):使用多个缓存方法如果你想使用多个缓存,可以使用下面的形式来操作缓存,其他方法相同$value=Cache::store('file')->get('foo');//获取缓存::store('redis')->put('bar','baz',10);//设置