当前位置: 首页 > news >正文

网站网站制作网素材网站在哪里找

网站网站制作网,素材网站在哪里找,wordpress自动发卡,wordpress 微信导航站通过缓存构建高性能 Laravel 应用由 学院君 创建于3年前, 最后更新于 11个月前版本号 #220678 views9 likes1 collects配置Laravel 为不同的缓存系统提供了统一的 API。缓存配置位于 config/cache.php。在该文件中你可以指定在应用中默认使用哪个缓存驱动。Laravel 开箱支持主流…通过缓存构建高性能 Laravel 应用由 学院君 创建于3年前, 最后更新于 11个月前版本号 #220678 views9 likes1 collects配置Laravel 为不同的缓存系统提供了统一的 API。缓存配置位于 config/cache.php。在该文件中你可以指定在应用中默认使用哪个缓存驱动。Laravel 开箱支持主流的缓存后端如 Memcached和 Redis 等。缓存配置文件还包含其他文档化的选项确保仔细阅读这些选项。默认情况下Laravel 被配置成使用文件缓存这会将序列化数据和缓存对象存储到文件系统。对于大型应用建议使用内存缓存如 Memcached 或 APC你甚至可以为同一驱动配置多个缓存配置。驱动预备知识数据库使用 database 缓存驱动时你需要设置一张表存储缓存项。下面是该表的 Schema 声明Schema::create(cache, function($table) {$table-string(key)-unique();$table-text(value);$table-integer(expiration);});注你还可以使用 Artisan 命令 php artisan cache:table 通过相应的 schema 生成迁移。Memcached使用 Memcached 缓存要求安装了Memcached PECL 包即 PHP Memcached 扩展。你可以在配置文件 config/cache.php 中列出所有 Memcached 服务器memcached [[host 127.0.0.1,port 11211,weight 100],],你还可以设置 host 选项为 UNIX socket 路径如果你这样做port 选项应该置为 0memcached [[host /var/run/memcached/memcached.sock,port 0,weight 100],],Redis使用 Laravel 的 Redis 缓存之前你需要通过 Composer 安装 predis/predis 包(~1.0)。想要了解更多关于 Redis 的配置查看 Larave 的 Redis 文档。缓存使用获取缓存实例Illuminate\Contracts\Cache\Factory 和 Illuminate\Contracts\Cache\Repository 契约提供了访问 Laravel 缓存服务的方法。Factory 契约提供了所有访问应用定义的缓存驱动的方法。Repository 契约通常是应用中 cache 配置文件中指定的默认缓存驱动的一个实现。不过你还可以使用 Cache 门面这也是我们在整个文档中使用的方式Cache 门面提供了简单方便的方式对底层 Laravel 缓存契约实现进行访问namespace App\Http\Controllers;use Illuminate\Support\Facades\Cache;class UserController extends Controller{/*** 显示应用所有用户列表.** return Response*/public function index(){$value Cache::get(key);//}}访问多个缓存存储使用 Cache 门面你可以使用 store 方法访问不同的缓存存储器传入 store 方法的键就是 cache 配置文件中 stores 配置数组里列出的相应的存储器$value Cache::store(file)-get(foo);Cache::store(redis)-put(bar, baz, 10);从缓存中获取数据Cache 门面的 get 方法用于从缓存中获取缓存项如果缓存项不存在返回 null。如果需要的话你可以传递第二个参数到 get 方法指定缓存项不存在时返回的自定义默认值$value Cache::get(key);$value Cache::get(key, default);你甚至可以传递一个闭包作为默认值如果缓存项不存在的话闭包的结果将会被返回。传递闭包允许你可以从数据库或其它外部服务获取默认值$value Cache::get(key, function() {return DB::table(...)-get();});检查缓存项是否存在has 方法用于判断缓存项是否存在如果值为 null 或 false 该方法会返回 falseif (Cache::has(key)) {//}数值增加/减少increment 和 decrement 方法可用于调整缓存中的整型数值。这两个方法都可以接收第二个参数来指明缓存项数值增加和减少的数目Cache::increment(key);Cache::increment(key, $amount);Cache::decrement(key);Cache::decrement(key, $amount);获取存储有时候你可能想要获取缓存项但如果请求的缓存项不存在时给它存储一个默认值。例如你可能想要从缓存中获取所有用户或者如果它们不存在的话从数据库获取它们并将其添加到缓存中你可以通过使用 Cache::remember 方法实现$value Cache::remember(users, $minutes, function() {return DB::table(users)-get();});如果缓存项不存在传递给 remember 方法的闭包被执行并且将结果存放到缓存中。你还可以使用 rememberForever 方法从缓存中获取数据或者将其永久存储起来$value Cache::rememberForever(users, function() {return DB::table(users)-get();});获取删除如果你需要从缓存中获取缓存项然后删除你可以使用 pull 方法和 get 方法一样如果缓存项不存在的话返回 null$value Cache::pull(key);在缓存中存储数据你可以使用 Cache 门面上的 put 方法在缓存中存储数据。当你在缓存中存储数据的时候需要指定数据被缓存的时间(分钟数)Cache::put(key, value, $minutes);除了传递缓存项失效时间你还可以传递一个代表缓存项有效时间的 PHP Datetime 实例$expiresAt Carbon::now()-addMinutes(10);Cache::put(key, value, $expiresAt);缓存不存在时存储数据add 方法只会在缓存项不存在的情况下添加数据到缓存如果数据被成功添加到缓存返回 true否则返回falseCache::add(key, value, $minutes);永久存储数据forever 方法用于持久化存储数据到缓存这些值必须通过 forget 方法手动从缓存中移除Cache::forever(key, value);注如果你使用的是 Memcached 驱动当缓存数据达到上限后永久存储的数据就会被移除。从缓存中移除数据你可以使用 Cache 门面上的 forget 方法从缓存中移除缓存项数据Cache::forget(key);还可以使用 flush 方法清除所有缓存Cache::flush();注清除缓存并不管什么缓存键前缀而是从缓存系统中移除所有数据所以在使用这个方法时如果其他应用与本应用有共享缓存时需要格外注意。缓存辅助函数除了使用 Cache 门面或缓存契约还可以使用全局的 cache 函数来通过缓存获取和存储数据。当带有一个字符串参数的 cache 函数被调用时会返回给定键对应的缓存值(取值)$value cache(key);如果你提供了键值对数组和一个过期时间给该函数则会在指定的有效期内存储缓存值(存储)cache([key value], $minutes);cache([key value], Carbon::now()-addSeconds(10));测试调用 cache 函数时可以像测试门面一样使用 Cache::shouldReceive 方法。缓存标签注缓存标签目前不支持 file 或 database 缓存驱动此外当使用多标签的缓存被设置为永久存储时使用 memcached 驱动的缓存有着最佳性能表现因为 Memcached 会自动清除陈旧记录。存储被打上标签的缓存项缓存标签允许你给相关缓存项打上同一个标签以便于后续清除这些缓存值被打上标签的缓存可以通过传递一个被排序的标签数组来访问。例如我们可以通过以下方式在添加缓存的时候设置标签Cache::tags([people, artists])-put(John, $john, $minutes);Cache::tags([people, authors])-put(Anne, $anne, $minutes);你可以给多个缓存项打上相同标签这是没有数目限制的。访问被打上标签的缓存项要获取被打上标签的缓存项传递同样的有序标签数组到 tags 方法然后使用你想要获取的key来调用 get 方法$john Cache::tags([people, artists])-get(John);$anne Cache::tags([people, authors])-get(Anne);移除被打上标签的数据项你可以同时清除被打上同一标签/标签列表的所有缓存项例如以下语句会移除被打上 people 或 authors 标签的所有缓存Cache::tags([people, authors])-flush();这样上面设置的 Anne 和 John 缓存项都会从缓存中移除。相反以下语句只移除被打上 authors 标签的语句所以只有 Anne 会被移除而 John 不会Cache::tags(authors)-flush();添加自定义缓存驱动编写驱动要创建自定义的缓存驱动首先需要实现 Illuminate\Contracts\Cache\Store 契约所以我们的 MongoDB 缓存实现看起来会像这样子namespace App\Extensions;use Illuminate\Contracts\Cache\Store;class MongoStore implements Store{public function get($key) {}public function many(array $keys);public function put($key, $value, $minutes) {}public function putMany(array $values, $minutes);public function increment($key, $value 1) {}public function decrement($key, $value 1) {}public function forever($key, $value) {}public function forget($key) {}public function flush() {}public function getPrefix() {}}我们只需要使用一个 MongoDB 连接来实现其中的每一个方法想要看如何实现每个方法的示例可以参考 Laravel 底层源码 Illuminate\Cache\MemcachedStore实现完成后我们就可以完成自定义驱动注册Cache::extend(mongo, function($app) {return Cache::repository(new MongoStore);});注如果你在担心将自定义缓存驱动代码放到哪可以在 app 目录下创建一个Extensions 命名空间。不过记住 Laravel 并没有一个严格的应用目录结构你可以基于你的需要自由的组织目录结构。注册驱动要通过 Laravel 注册自定义的缓存驱动可以使用 Cache 门面上的 extend 方法。对 Cache::extend 的调用可以在 Laravel 自带的 App\Providers\AppServiceProvider 提供的 boot 方法中完成或者你也可以创建自己的服务提供者来存放扩展——只是别忘了在配置文件 config/app.php 中注册服务提供者到 providers 数组namespace App\Providers;use App\Extensions\MongoStore;use Illuminate\Support\Facades\Cache;use Illuminate\Support\ServiceProvider;class CacheServiceProvider extends ServiceProvider{/*** Perform post-registration booting of services.** return void* translator laravelacademy.org*/public function boot(){Cache::extend(mongo, function($app) {return Cache::repository(new MongoStore);});}/*** Register bindings in the container.** return void*/public function register(){//}}传递给 extend 方法的第一个参数是驱动名称。该值对应配置文件 config/cache.php 中的 driver 选项。第二个参数是返回 Illuminate\Cache\Repository 实例的闭包。该闭包中被传入一个 $app 实例也就是服务容器的一个实例。扩展被注册后只需简单更新配置文件 config/cache.php 的 driver 选项为自定义扩展名称即可。缓存事件要在每次缓存操作时执行代码你可以监听缓存触发的事件通常你可以将这些缓存处理器代码放到 EventServiceProvider 中/*** The event listener mappings for the application.** var array*/protected $listen [Illuminate\Cache\Events\CacheHit [App\Listeners\LogCacheHit,],Illuminate\Cache\Events\CacheMissed [App\Listeners\LogCacheMissed,],Illuminate\Cache\Events\KeyForgotten [App\Listeners\LogKeyForgotten,],Illuminate\Cache\Events\KeyWritten [App\Listeners\LogKeyWritten,],];
http://www.zqtcl.cn/news/118252/

相关文章:

  • 网站建设代理ai制作网页
  • 微网站平台怎样做网站wordpress侧栏跟随
  • 手机网站建设好吗湖南省专业建设公司网站的机构
  • 网站代码 字体好用的cms网站
  • 美食网站首页设计用手机怎么看自己做的网站
  • 平台类网站开发怎样做永久网站二维码
  • 网站开发客户挖掘php网站开发心得3500字
  • 检察院做网站的目的青岛网站推广优化
  • dede替换网站模板定制网站建设的流程
  • 天津专业网站制作网站开发模板
  • 做二手车网站需要什么怎样建立门户网站
  • 宁波做网站首荐荣盛网络网站建设太仓
  • 购物网站公司要花费多少钱wordpress 菜单 字体加粗
  • 网站模板如何编辑软件crm免费客户管理系统
  • 微信制作网站设计重庆关键词优化软件
  • 网站的设计与应用论文平台推广计划书模板范文
  • 网站备案用户名忘了怎么办网站做301排名会掉
  • 厦门制作网站企业网站子域名怎么做
  • 青岛微网站开发品牌建设青之见
  • 淄博哪有培训做网站的湖南营销型网站建设企业
  • 动物网站建设深圳最好的营销网站建设公司
  • 各种网站制作陕西建设厅证件查询网站
  • 如何提高一个网站如何做简单网站
  • 游戏网站开发找什么人可建智慧园区设计方案
  • 重庆网站设计公司推荐福州移动网站建设
  • 移动网站功能做网站fjfzwl
  • 食品网站建设的目的中级经济师考试成绩查询
  • 普宁建设局网站免费的网站开发平台
  • 网站域名主机空间区别网站上传系统
  • 建设高端网站公司的目的淮南房产网