频繁更新的Laravel-缓存Eloquent
是否可以在经常修改的对象上使用缓存?例如,假设我们有一个Blogpost对象,并且有一个经常更改的num_of_views列(其他等).是否可以在缓存和DB中更新NUM_OF_VIEWS字段,而不会破坏缓存对象并重新创建它?我可以手动做,但是我担心同步问题. 解决方案 是的,是.我不知道您的工作方式,但是您可以随时更换缓存实例: public function updatePost($post_id, $num_of_views) { if (Cache::has('POST.'.$post_id)) { $post = Cache::get('POST.'.$post_id); } else { $post = Post::find($post_id); } $post->num_of_views = $num_of_views; $post->save(); C
0 2023-06-01
编程技术问答社区
MVC框架中的缓存策略?
我写了自己的小PHP MVC框架,现在我正在探索PHP MVC框架中的缓存策略.我正在考虑可以缓存什么,在哪里以及如何. 我拥有的框架是简单的MVC框架.我有前控制器,可以启动应用程序,注册类自动加载,设置PHP运行时间指令...并最终分析URL并将请求派遣到适当的控制器,方法,操作控制器,以及您想如何调用它.从控制器中,我可以访问域对象,以及可以将域对象持续到某些存储的数据映射器,大多数时间关系数据库. 从控制器我可以访问域对象和数据映射器. ,就缓存而言,这些是我现在可以做的事情. 使用PHP,我可以使用opcode缓存的APC缓存,但是我也可以使用它将变量保存到RAM中.然后,我可以使用Memcache并将其用作APC缓存的MEMCAHED,但是如果需要扩展,我可以从不同的服务器访问存储的缓存.这两个不是opcode caches. 据我所知,我可以做这些事情: 在控制器中,我可以将域对象保存到缓存中,因此,如果我已经在缓存中有该域对象. ,我不必每次
0 2023-06-01
编程技术问答社区
Laravel 5-Cache remember doesn't work
我试图用cache ::记住()缓存一些查询.但这无效. 我的脚本响应代码是500(内部服务器错误). 这是我的代码: $filters = \Cache::remember("cache_filter", 20, function(){ $data['value1'] = MyClass::where('')->get(); $data['value2'] = MyClass::where('')->get(); $data['value3'] = MyClass::where('')->get(); return $data; }); return view('custom.show')->with($filters); Storage permissions => 777 Cache path => storage_path('
0 2023-06-01
编程技术问答社区
Symfony2-退出并清除缓存+防止返回按钮
我尝试在用户注销时杀死浏览器缓存. 我实现了LogoutCessHandlerInterface以扩展onLogoutsuccess方法. 没有错误,但是当我注销时,我可以按浏览器中的返回按钮,看到我的profil page =>如果我刷新此页面,我会自动重定向,因此我已正确登录. security.yml logout: path: /logout target: / invalidate_session: true success_handler: project_user.handler.logout_handler services.yml project_user.handler.logout_handler: class: Project\UserBundle\Handler\LogoutHandler project/userBundle/handler/logouthandler.php
0 2023-06-01
编程技术问答社区
什么是缓存标签?
有 cache_tagging 在Kohana中,但没有解释它是什么.谁能说出应该做什么缓存标记或何时使用? 解决方案 一些缓存实现允许您在存储在缓存中的任何数据项中添加一个或多个标签,然后找到或删除具有给定标签的所有项目.这对于许多事物可能很有用,最重要的是批处理更新(您在缓存中添加了一堆相关的内容,用版本字符串对其进行标记,并且稍后了解该版本的数据已过时,请告诉CACHE立即将其全部放下). 其他解决方案 我的猜测是您可以将标签设置为缓存条目,然后通过TAG(S?)删除缓存条目. 这样,您可以使用自己的规则非常有选择地清除一部分缓存.
0 2023-06-01
编程技术问答社区
PHP 缓存(HTML + PHP)
我已经为一个项目制作了一个框架.该项目执行了中等数量的查询请求(但是它将获得的流量将使每个用户更多).视图混合了HTML和PHP. 只是寻找有关如何缓存视图文件的最佳极简主义方式(控制器使用输出缓冲,所以也许我可以利用它?)并缓存我的查询.我环顾四周,但只能在做这些事情上找到大/肿的库或非常粗略的方法,这是我不感兴趣的. 感谢您的帮助! 解决方案 您可以尝试缓存复杂的视图,例如列表等. 一个示例:您有一个类别概述,它显示了所有类别的名称以及其中的项目计数.您可以将此视图缓存为静态HTML,只要没有在任何类别中插入或删除新项目. 因此,每次创建新项目或删除一个项目时,您都必须再生此视图. 由于创建项目的频率少于被查看,因此您可以保存许多查询;) ps:您不必为此使用文件,您可以使用memcache(Google for IT)
0 2023-06-01
编程技术问答社区
如何在不使Apache崩溃的情况下清除APC的缓存?
如果APC存储了很多条目,清除它们会崩溃httpd. 如果apc_clear_cache('用户')比phps max_execution_time更长 脚本调用apc_clear_cache 将在PHP之前终止 清算操作完成.这 似乎留下了一些手柄或STH. 这将阻止Apache关闭 这是过程. (是否还有其他一些快速但安全的APC缓存清理方式? 解决方案 您可以删除正在运行的脚本的时间限制(只要您在安全模式下不运行PHP) set_time_limit(0); 这将删除脚本的时间限制 http://au2.php.php.net/manual/en/function.set time-limit.php 有关更多详细信息 其他解决方案 您也可以优雅地重新启动Apache,并可以使用干净的APC重新加载.
0 2023-06-01
编程技术问答社区
重定向到同一页面时的CakePHP缓存问题
我正在使用cakephp 2.6 当我从提出请求的位置重定向到相同的视图时,我遇到了问题.该视图似乎是缓存的,因此在请求期间进行的任何更改都不会显示,直到页面再次刷新. 这意味着: 用户看不到刚刚进行的更改. 闪存消息显示在下面视图(这是不好的)上. 为什么会发生这种情况? 我已检查的东西: 我的PHP环境已关闭缓存 我的CakePHP配置是默认值(见下文). 缓存应该被禁用,因为我处于调试模式:Configure::write('debug', 2); 我正在使用和的多个浏览器进行测试,而无需浏览器缓存. Configure::write('Session', array( 'defaults' => 'php' )); 代表性示例: //Inside ListingsController... $this->Listing->id = $id; if ($this->Listing->save($
0 2023-06-01
编程技术问答社区
如何从我的网站缓存脚本和图片?
问题::::::: 我一直在尝试创建一个站点(托管在x10 hosting上).因此,我一直在搜索如何构建快速站点.我有一个页面来改进jQuery代码.以下是页面的链接. 在该页面中,我阅读了包括Google.com的JQuery Framework代码,可以加快网站的速度.而且我也找出了原因,因为Google.com加速了JQuery Framework代码,因此用户不必一次又一次地下载JQuery Framework代码.因此,我认为我也可以在网站上做到这一点.好吧,我正在使用基于Linux的网站.因此,任何人都可以建议一个页面或代码来缓存我的网站中的脚本或图像,以便用户不必一次又一次下载. links ::::::: 预先感谢! 解决方案 机会是,只要您使用普通的静态文件(以.js,.gif等结束),您的服务器已经为您提供了缓存. 您可以在Firefox中使用Firebug之类的工具或Chrome中的内置开发人员控制台找到答案.到达那里的最简单方法是
0 2023-05-31
编程技术问答社区
通过使用隐藏的div来缓存数据
我正在尝试通过以下几种操作来加快AJAX Web应用程序的速度: 说用户请求内容不更改的页面(例如Web表单).当用户提出不同的请求时,我将其放在隐藏的div中"缓存"表单.在显示新信息之前.因此,该表格基本上仍在浏览器中加载,但用户看不到.如果用户再次请求同一表格,则将其从隐藏的Div加载.这比对表格的服务器进行往返速度要快. 我确实意识到这样做可能会在浏览器中保持大量内存,这可能会降低性能.但是我将以这种方式"缓存"的数量限制. 现在,我自己想到了这个,这就是为什么我想知道是否有更好/既定的方法来做到这一点.它可以按预期工作,但我不知道可能存在什么缺点(也许与安全有关?). 我感谢任何建议. 非常感谢. 解决方案 我以前做过.这可能是一种有用的技术.只需确保数据准确并支持JS禁用用户代理. 编辑:没有更好的解决方案. 其他解决方案 在JS变量中存储您的表单的HTML代码可能比使用该HTML代码的解释(form + form + form
0 2023-05-31
编程技术问答社区
如何在doctrine 2和zend framework 2中使用cache?
plz我在这里需要一些帮助,但我却没有很多结果:/ 我如何利用查询及其存储在memcache中的结果,我正在使用Zend Framework 2和Doctrine 2?这是我在模块中的配置.config.php: // Doctrine config 'doctrine' => array( 'driver' => array( __NAMESPACE__ . '_driver' => array( 'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver', 'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity') ), 'orm_default' => array(
0 2023-05-31
编程技术问答社区
Internet Explorer 10后退按钮的缓存
在Internet Explorer 10中,如果按下后面按钮,它将尝试从浏览器缓存中获取上一页.这种行为与几乎所有其他浏览器(包括IE9)的不同之处在于,在该浏览器中,按下后面按钮将完成上一页的完整重新加载,而不是重复使用缓存. 我如何与网站上的IE10进行通信,可能使用JavaScript/Headers等,以不为该网站使用此缓存吗? (注意:我不是在寻找IE10设置来禁用此功能.我正在寻找可以在网站中实现的解决方案,而不是指示IE10不使用此缓存的浏览器来备份按钮) .另外,我正在寻找适用于网站中每个页面的全局解决方案... 我在网站上使用php/jquery 所以这里有更多信息 页面是一种形式.它包含一些动态加载的信息. (假设它包含用户提交表单的次数) 您单击表格的提交按钮.然后,您将重定向到表单的动作页面. 然后按下后面按钮. 在其他每个浏览器中,它都会重新加载初始表格,并带有新更新的"用户提交表单的次数".但是,在IE10中,
0 2023-05-31
编程技术问答社区
如何在PHP中缓存XML文件?
我正在从包含相当静态数据的远程服务器中获取XML文件.这是我的代码: $dom = simplexml_load_file("foo.xml"); foreach ($dom->bar->baz as $item) { echo $item; } 由于数据很少发生变化,因此无需在每个页面上ping服务器加载...如何简单地缓存foo.xml?请记住,我是一个初学者... 谢谢! 解决方案 一个非常简单的缓存将是将XML文件存储到目录中,并每小时更新 $cacheName = 'somefile.xml.cache'; // generate the cache version if it doesn't exist or it's too old! $ageInSeconds = 3600; // one hour if(!file_exists($cacheName) || filemtime($cacheName) > time() + $ageInS
0 2023-05-31
编程技术问答社区
处理缓存的动态数据
我正在为PHP使用称为QuickCache的东西,该php提供了全页网页.它效果很好,但我唯一的问题是我有一个动态的网站,某些事情不会以我希望的方式更新后的方式. . 例如,如果用户登录,登录框仍会显示,即使对服务器登录了用户(我可以转到网站的未切除部分美好的).更改用户设置等也是如此 我也不能每次登录或更改微小的设置时都会转储缓存. 看来我无法缓存,因为它使该站点无法使用,而且我不缓存该站点在任何可观的负载下都无法使用. 我应该如何解决这个问题?我一般可以缓存非常新手 - 我是第一次推出我的一个网站.当然,其他人已经解决了这个问题. 解决方案 我不是PHP的人,但我可以告诉您有关缓存的信息. 动态站点每个用户生成内容是有效地做的最棘手的网站,但是可以完成.它将要求您查看应用程序中的数据如何流动,以确定如何,何处和何处缓存.以下是一些准则: 数据不会更改每个用户或每个页面 - 应用程序内存中的缓存和 抓住它而不是去DB. 每个用户更改但不更
0 2023-05-31
编程技术问答社区
MySQL中的查询缓存
我正在建立一个相当大的统计系统,该系统需要允许用户请求给定过滤器的统计信息(例如,日期范围). 例如.这是一个简单的查询,可返回10个结果,包括player_id和每个玩家造成的杀死数量: SELECT player_id, SUM(kills) as kills FROM `player_cache` GROUP BY player_id ORDER BY kills DESC LIMIT 10 OFFSET 30 上面的查询将结果将结果偏移30(即结果的第三页).当用户选择"下一个"页面时,它将使用偏移40而不是30. 我的问题是,即使在同一数据集上使用了限制/偏移对,也没有任何缓存,它也会再次执行sum(),只是为了将结果偏移10个. . 上面的示例是一个更大的查询的简化版本,该版本仅返回更多字段,并且需要很长时间(20秒以上,并且只会随着系统的增长而变得更长). 因此,我本质上是在寻找一种解决方案来加快页面加载,通过在应用限制/偏移之前缓存状态
4 2023-05-31
编程技术问答社区
我可以使用Magento的缓存层作为一个键/值存储吗?
我可以将Magento的缓存层用作类似于MEMCACHED或APC的键/值存储吗?不用担心正在使用什么缓存引擎而仍然缓存一些代码真是太好了. 另外,我希望Magento在与之加入后可以缓存我的收藏.如果出于某种原因Magento没有缓存加入的数据,我也想听听. 解决方案 缓存可直接用作密钥/值存储, (感谢 b00mer 指向此) 块已经内置了一些缓存功能,您只需要提供密钥. 收藏量没有相同的技巧,但是 mysql确实有自己的查询缓存可能已经处于活动状态.首选块缓存,因为无论如何您的收集通常会以渲染的HTML最终形式. 编辑: 收集可以缓存,就像块一样需要缓存键.我以前没有做过,但大概它的工作原理完全相同. (它有 但没有回答)
0 2023-05-31
编程技术问答社区
APC用户缓存密钥在多个站点上发生碰撞
使用用户缓存的APC,避免在同一服务器上运行的多个站点之间的密钥碰撞的最佳选择是什么? 我遇到了两个或多个站点使用相同的缓存键并期望将不同类型的项目存储在其下方的问题 - 一个期望一个JSON字符串,另一个阵列,另一个数组,另一个对象. 他们是通过网站细分APC的方式? btw:我正在使用apcach和apache运行prefork和mod_php. 解决方案 也许您可以将服务器主机名附加到键,您可以定义常数或创建一些用于处理APC的模型:
0 2023-05-31
编程技术问答社区
智能(?)数据库缓存
我已经看过几个数据库缓存引擎,它们都很愚蠢(即:keep this query cached for X minutes),要求您在INSERT/UPDATE/DELETE查询具有后手动删除整个缓存存储库被执行. 大约2或3年前,我为正在从事的项目开发了一个替代的DB缓存系统,该想法基本上是使用正则表达式来查找与特定SQL查询有关的表: $query_patterns = array ( 'INSERT' => '/INTO\s+(\w+)\s+/i', 'SELECT' => '/FROM\s+((?:[\w]|,\s*)+)(?:\s+(?:[LEFT|RIGHT|OUTER|INNER|NATURAL|CROSS]\s*)*JOIN\s+((?:[\w]|,\s*)+)\s*)*/i', 'UPDATE' => '/UPDATE\s+(\w+)\s+SET/i', 'DELETE' => '/FROM\s+((?:[\w]|,\s*)+)
0 2023-05-31
编程技术问答社区
有没有一种方法或工具可以自动访问我网站的所有页面?
我想自动访问/爬网网站上的所有页面,以生成缓存文件.有什么方法或工具可以做到吗? 解决方案 只需使用任何下载整个页面的机器人: -i-Download-an-Entire-website 例如,wget: wget -r --no-parent http://site.com/songs/ 其他解决方案 您可以使用wget的递归选项来执行此操作.将example.com更改为您的域: wget --recursive --no-parent --domains=example.com --level=inf --delete-after 其他解决方案 您使用CMS吗?您有页面列表吗?您可以编写一个简单的PHP循环,以使用卷曲或php fopen() 加载所有页面 $pages_ar = array( "http://mydomain.com/page1.htm", "http://mydomain.com/page2.htm
0 2023-05-31
编程技术问答社区