标签: memcached

Rails 4俄罗斯娃娃缓存如何防止踩踏事件?

我希望找到有关Rails 4中的缓存机制如何防止多个用户同时尝试重新生成缓存密钥的信息,也就是缓存标记:http://en.wikipedia.org/wiki/Cache_stampede

我无法通过谷歌搜索找到更多信息.如果我查看其他系统(例如Drupal),则通过semaphores数据库中的表实现缓存预防.

ruby memcached caching ruby-on-rails

19
推荐指数
2
解决办法
1744
查看次数

Google App Engine:Memcache还是Static变量?

好吧,我想我在这里有一个非常基本的疑问:

我正在开发一个关于GAE(Java)的应用程序,并对返回大量实体的数据存储区执行查询,因此我需要对其进行缓存.我使用的是memcache并且工作得很好,但是如果我将实体列表保存在静态变量中,整个请求的速度是使用memcache的两倍.我认为那是因为我不是一直在反序列化实体.

在memcache上使用静态变量会有什么缺点?我不知道我的应用程序在云中是否有多个实例,因此我的静态变量的几个实例?

我正在尝试缓存的实体列表是上周的最佳(更高分)帖子.我拿这个列表并选择5个随机帖子并在几页中显示它们.

谢谢您的帮助!

java google-app-engine memcached static-variables google-cloud-datastore

18
推荐指数
2
解决办法
6490
查看次数

你能在Memcache中存储PHP数组吗?

你能在Memcache中存储一个数组吗?

我想存储;

  1. 用户ID号
  2. 用户的照片网址
  3. 用户名

作为一个阵列,有人告诉我你可以,然后有人告诉我你不能这是什么?

php memcached

18
推荐指数
2
解决办法
3万
查看次数

检查Memcache中是否存在密钥

如何在没有提取的情况下将值存储在Memcache中,如何检入PHP?我不喜欢抓取它,因为我设置的值都是1MB大小,在我获取它之后,我没有用它,所以我浪费资源.我在脚本中使用它来检查某些键是否缓存在memcache中,如果没有,它会从慢速数据源读取它们并将它们设置在memcache中.

编辑:如果我使用Memcached::append附加NULL到我正在检查的密钥怎么办?TRUE成功或FALSE失败时的退货.如果密钥不存在,Memcached::getResultCode则返回Memcached::RES_NOTSTORED.这样我检查密钥是否存在,它应该把密钥放在LRU列表的顶部吗?

谢谢.

php memcached

18
推荐指数
3
解决办法
2万
查看次数

为什么使用Redis代替MongoDb进行缓存?

我见过很多人最近使用Redis作为缓存,为什么不使用Mongo?据我所知,Redis可以在一个索引上设置一个过期日期,比如memcache但是否有任何理由不使用Mongo呢?

我问,因为我在MySQL中进行大量连接,然后在选择后更改数据.我已经在网站的其他部分使用了memcache,但是将其保存在Mongo中将允许我对缓存的数据进行地理空间搜索.

memcached geospatial mongodb redis

18
推荐指数
2
解决办法
1万
查看次数

如果数据不断变化,你会缓存什么?(以Twitter为例)

我花了一些时间研究缓存(主要是redis和memcached),并且在数据不断变化时很难确定在哪里使用缓存.

以Twitter为例(只需阅读使Twitter快10000%).当大部分数据库记录不断变化时,您(或他们)如何缓存数据?

说Twitter也有这些模型:User,Tweet,Follow,Favorite.

有人可能会发布一条推文,它会在一天内被转发一次,而另一条推文会在一天内转发一千次.对于那个1000x转推,因为24 * 60 == 1440一天大约几分钟,这意味着Tweet几乎每分钟更新一次(说它也有440个收藏).与追随某人相同,查理光泽甚至在1天内吸引了100万Twitter追随者.在这些情况下缓存似乎并不值得,但也许只是因为我尚未达到这个水平.

另请注意,普通的Twitter粉丝每天至少发一次推文/关注/收藏.这意味着在天真的intro-rails架构案例中,users表每天至少更新一次(tweet_count等等).这种情况对于缓存用户配置文件很有意义.

但对于上面的1000x Tweets和1M粉丝示例,在缓存数据方面有哪些推荐做法?

具体来说(假设使用memcached或redis,并使用纯JSON API(无页面/片段缓存)):

  • 你是否缓存个别推文/记录?
  • 或者你通过分页缓存大块的记录(例如20每个的redis列表)?
  • 或者您是单独还是在页面中缓存记录(查看单个推文与JSON提要)?
  • 或者你是否为每个不同的场景缓存推文列表:家庭时间线推文,用户推文,用户喜欢的推文等?或者以上所有?
  • 或者您是否将数据分为"最不稳定(最新)"到"最近几天"到"旧"块,其中"旧"数据缓存的有效日期较长或者是离散的分页列表或其他内容?并且最新的记录根本没有缓存.(即如果数据与推文有时间关系,那么如果您的旧记录知道它不会发生太大变化,您会不同地对待它?)

我不明白的是数据变化的比例与缓存它的比例(以及处理缓存到期的复杂性).看起来Twitter可以缓存不同的用户推文提要,以及每个用户的家庭推文,但是每次收藏/推文/转推意味着更新所有这些缓存项(以及可能缓存的记录列表)时,缓存都会使缓存无效,在某些时候,它似乎意味着无效缓存是适得其反的.

缓存数据的推荐策略是什么?

database memcached caching redis

18
推荐指数
2
解决办法
4230
查看次数

PHP致命错误:未找到类'Memcached'

php -v:

PHP 5.5.10-1+deb.sury.org~precise+1 (cli) (built: Mar 27 2014 16:18:01) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with XCache v3.1.0, Copyright (c) 2005-2013, by mOo
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
    with XCache Optimizer v3.1.0, Copyright (c) 2005-2013, by mOo
    with XCache Cacher v3.1.0, Copyright (c) 2005-2013, by mOo
    with XCache Coverager v3.1.0, Copyright (c) 2005-2013, by mOo
Run Code Online (Sandbox Code Playgroud)

dpkg -l | grep php5

结果

rc  php5-memcache                                   3.0.6-1                                             memcache extension …
Run Code Online (Sandbox Code Playgroud)

php memcached

18
推荐指数
1
解决办法
2万
查看次数

使用memcached使Java Play框架缓存Ebean实体

我正在运行Java Play框架版本v2.6.1并使用Ebean进行持久化.我的目的是使用play2-memcached插件获取bean缓存.

到目前为止我做了什么?

  • 安装memcached在localhost上并启用详细日志记录.
  • ehcachecacheApiin libraryDependenciesin 替换了依赖build.sbt(我假设,应该完全删除Ehcache).
  • 加入"com.github.mumoshu" %% "play2-memcached-play26" % "0.9.0",libraryDependenciesbuild.sbt
  • 加入"Spy Repository" at "http://files.couchbase.com/maven2",resolversbuild.sbt
  • 将以下条目添加到应用程序conf:

play.modules.disabled += "play.api.cache.ehcache.EhCacheModule" play.modules.enabled+="com.github.mumoshu.play2.memcached.MemcachedModule" play.cache.defaultCache=default play.cache.bindCaches=["db-cache", "user-cache", "session-cache"] memcached.host="127.0.0.1:11211"

  • 拿了我的实体并使其实现Serializable,还添加了@com.avaje.ebean.annotation.Cache注释.
  • 启用S​​QL日志记录

什么有用?

  • Entity.find.byId(id)结果SQL 加载实体SELECT.使用不同的请求结果再次加载它没有SQL语句.
  • 打开浏览器到localhost:11211显示syslog中的错误 - 这是为了确保memcached正在运行,我可以看到请求出现
  • 进行内存转储我可以看到com.github.mumoshu加载了与缓存相关的类.

什么不起作用?

  • 我希望缓存的对象被发送到memcached(在读取和/或更新时).这没有发生 - 没有与此相关的memcached日志.如果我运行,则没有任何与端口11211的连接netstat -na | …

java memcached playframework ebean playframework-2.6

18
推荐指数
1
解决办法
481
查看次数

Memcache根据模式使条目无效?

有没有办法根据通配符键使memcache中的条目无效?

所以,如果我有以下memcache键:

data/1
data/2
data/3
Run Code Online (Sandbox Code Playgroud)

有没有办法让这些键无效data/*?一举清除一堆陈旧数据将是非常有帮助的.

memcached clear invalidation

17
推荐指数
2
解决办法
1万
查看次数

Symfony2/Memcached集成

我正在关注一篇博文(链接不再可用)并将memcached添加到services.yml

parameters:
    memcached.servers:
      - { host: 127.0.0.1, port: 11211 }

services:
    memcached:
        class: Memcached
        calls:
            - [ addServers, [ %memcached.servers% ]]
Run Code Online (Sandbox Code Playgroud)

然后在我的控制器中:

$memcached = $this->get('memcached');
Run Code Online (Sandbox Code Playgroud)

看起来很漂亮.如果我能过去的话500 - You have requested a non-existent service "memcached"!

来自php的测试代码连接到memcached没有任何麻烦.完成缓存:手动清除,清除缓存 - 没有帮助.

我应该在哪里看?

memcached symfony

17
推荐指数
1
解决办法
2万
查看次数