有可能以某种方式运行Rails.cache.clear并且只清除具有特定名称/字符串的键吗?
我不想清除整个缓存...只是用字符串键blog/post的名称(即blog/post/1,blog/post/2).
我正在使用dalli和memcached作为我的缓存并运行Rails 3.0.6.
有没有办法指定如果方法返回null值,那么不要将结果缓存在这样的方法的@Cacheable注释中?
@Cacheable(value="defaultCache", key="#pk")
public Person findPerson(int pk) {
return getSession.getPerson(pk);
}
Run Code Online (Sandbox Code Playgroud)
更新:以下是去年11月提交的关于缓存空值的JIRA问题,尚未解决: [#SPR-8871] @Cachable条件应该允许引用返回值 - Spring Projects问题跟踪器
有没有办法告诉curl命令不要使用服务器端缓存?例如; 我有这个curl命令:
curl -v www.example.com
我怎么能请求curl发送一个不使用缓存的新请求?
注意:我在终端中寻找可执行命令.
我目前正在使用memcached和我的java应用程序,总的来说它工作得很好.
对我来说最重要的memcached的功能是:
但是,有一件事我想做,memcached无法做到.我想定期(可能每天一次)将缓存内容保存到磁盘.我希望能够从保存的磁盘映像中恢复缓存.
磁盘保存不需要非常复杂.如果在保存期间添加了新的键/值,我不在乎它是否包含在保存中.如果在保存发生时修改了现有的键/值,则保存的值应该是旧值或新值,但我不关心哪一个.
任何人都可以推荐另一种缓存解决方案(免费或商业),它具有对我很重要的所有(或很大一部分)memcached功能,并且还允许从磁盘保存和恢复整个缓存?
简单,可能是愚蠢的问题:假设我有一个Java服务器,它在内存中存储常用的键和值,我可以查询(比如在HashMap中)
它与使用Memcache(甚至是Redis)有什么区别?它们都将东西存储在内存中.一个或另一个有益处吗?Memcache是否减少了内存占用?可以在更少的内存中存储更多?更快查询?没有不同?
我正在使用负载均衡器后面的几个Web服务器,我可以启用Sticky Sessions将用户保存到一个特定的Web服务器 - 这将起作用.
我一直在阅读有关PHP Sessions和MemCache的内容.我必须说我读过的内容令人困惑,因为有些网页说它是个好主意,而其他网页则相反.
问题:
好吧,我刚开始使用Lumen并且我正在尝试使用Auth,但是调用Auth :: check或Auth的任何其他函数..导致以下错误 致命错误:在供应商中找不到类'Memcached'第52行的\ illuminate\cache\MemcachedConnector.php.我不想使用之前从未使用过的Memcached.
我在.env文件中禁用它并将CACHE_DRIVER和SESSION_DRIVER设置为数组,但仍然显示相同的错误.
我决定不再使用Auth并使用会话/令牌手动处理我的身份验证,但启用MiddleWare StartSession会导致相同的错误.
$app->middleware([
// 'Illuminate\Cookie\Middleware\EncryptCookies',
// 'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
// 'Illuminate\View\Middleware\ShareErrorsFromSession',
// 'Laravel\Lumen\Http\Middleware\VerifyCsrfToken',
]);
Run Code Online (Sandbox Code Playgroud)
如果有人真的可以帮助我,我会很高兴
编辑
在框架中进行了一点深入之后,I Hard SessionManager在方法中的类中编写了会话驱动程序名称getSessionConfig
public function getSessionConfig()
{
$this->setDefaultDriver("cookie");//I added this line
return $this->app['config']['session'];
}
Run Code Online (Sandbox Code Playgroud)
它虽然有效,但不是一种好的做事方式.没有配置文件,我相信所有的配置都写在.ENV文件,但我真的不知道为什么session_driver和cache_driver默认为memecached即使在改变之后.ENV然后跑去composer dump-autoload......流明:(
编辑 这是我的.env文件
APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomKey!!!
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=array
SESSION_DRIVER=cookie
QUEUE_DRIVER=database
Run Code Online (Sandbox Code Playgroud)
我已经在我的bootsrap/app.php中取消注释了这一行
Dotenv::load(__DIR__.'/../');
Run Code Online (Sandbox Code Playgroud)
我的DataBase配置工作正常,因此.env文件加载得非常好.
我是学习memcached的初学者.memcached服务器最让我困惑.我可以像网络服务器一样将其视为单台服务器计算机吗?我也对memcached服务器和客户端之间的关系感到困惑,它们是否位于不同的计算机上?