标签: memcached

MS Velocity vs Memcached for Windows?

我一直在关注微软最近将Velocity推广为分布式缓存解决方案,该解决方案将与Memcached等竞争对手竞争.

我一直在寻找一个64位版本的Memcached for Windows一段时间没有运气,因为我正在研究的ASP.Net MVC项目的一切都是64位,除了64位之外什么都没用.

现在我们已经在测试中使用ASP.NET MVC进行了对冲(很快就希望RTM),但是StackOverflow似乎并没有做得太糟糕,所以我在那里的担忧有限.但速度仍然是一个未知的数量,并且仍将是Beta(或CTP)多年 - 但它确实有 64位!

在这种情况下,有没有人有相关的经验或观点?我们应该等待Velocity的时间 - 它是否足以与Memcached这样的巨头竞争,或者我们是否应该投入时间试图获得64位版本的Memcached?

memcached caching distributed-caching appfabric

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

如何在不同端口的同一台服务器上创建两个memcached服务器实例?

我试图在memcached conf文件中添加-l 11211 -l 11212.但它只是听第一个,即1121

memcached

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

内存缓存和通配符

我只是想知道是否有办法使用通配符清除memcache的键值.

所以说我有一个带有"1234~foo"键和另一个"1234~foo~bar"的缓存.

有什么方法我可以通过使用像clear("1234*")这样的东西来清除缓存并从上面清除它们吗?

我希望这是有道理的.

谢谢.

memcached

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

如何在使用自制软件安装后启用memcached PHP扩展?

我最近安装的memcached与自制,我不完全知道如何启用它在我的PHP envirionment因为我加extension=memcached.so/etc/php.iniLion中OS X.

即使我重新启动了apache,仍然没有加载任何内容.

如果我打电话get_loaded_extensions(),我没有在列表中看到memcached,如何从自制软件安装时启用它?

编辑:

我在终端做的是:

$ brew install memcached

安装得很好,现在我去了/etc/php.ini并附加:

extension=memcached.so

php macos homebrew memcached

31
推荐指数
5
解决办法
9万
查看次数

System.Web.Caching与企业库缓存块

对于将在Web应用程序和富客户端应用程序中使用的.NET组件,似乎有两个明显的缓存选项:System.Web.Caching或Ent.库.缓存块.

  • 你用什么?
  • 为什么?

System.Web.Caching

在Web应用程序之外使用是否安全?我看到了混合信息,但我认为答案可能并非如此.

我不希望使用它的一个亮点,SqlCacheDependency,但在.NET 3.5中添加CacheItemUpdateCallback似乎是一件非常好的事情.

企业库缓存应用程序块

  • 其他块已在使用中,因此依赖性已存在
  • 缓存持久性不是必需的; 重启时重新生成缓存是可以的

某些缓存项应始终可用,但应定期刷新.对于这些项目,在删除项目获取回调不是很方便.看起来客户端必须只是睡眠和轮询,直到重新填充缓存项.

Memcached for Win32 + .NET客户端

当您不需要分布式缓存时,有什么优缺点?

memcached caching enterprise-library .net-2.0

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

如何从Rails Observer/Model调用expire_fragment?

我几乎尝试过所有东西,但似乎不可能从模型中使用expire_fragment?我知道你不应该而且它不是非MVC,但肯定有很多方法可以做到.

我在lib/cache_helper.rb中创建了一个带有所有过期助手的模块,每个模块都只是一堆expire_fragment调用.我在/ app/sweepers下设置了所有缓存清理器,并在我的应用程序控制器中有一个"include CacheHelper",因此当通过控制器调用时,应用程序中的缓存可以正常工作.

然后事情是我有一些外部守护进程,特别是一些重复的cron任务,它们调用一个调用某种方法的rake任务.此方法执行一些处理并将条目输入到模型中,之后我需要使缓存过期.

这是最好的方法,因为我无法在模型中指定缓存清理程序.直观的观察者似乎是最好的解决方案,但后来它抱怨expire_fragment未定义等等,我甚至尝试将ActionController缓存类包含在观察者中,但这不起作用.我喜欢有关如何为此创建解决方案的一些想法.谢谢.

ruby memcached caching ruby-on-rails

29
推荐指数
4
解决办法
1万
查看次数

在Android上同时将数据保存在内存和数据库中的最佳实践

我们正在设计一个拥有大量数据的Android应用程序("客户","产品","订单"......),我们不希望每次需要某些记录时都查询SQLite.我们希望避免尽可能多地查询数据库,因此我们决定将某些数据始终保留在内存中.

我们最初的想法是创建两个简单的类:

  1. "MemoryRecord":一个基本上包含一个对象数组(string,int,double,datetime等)的类,它们是表记录中的数据,以及从这个数据中获取这些数据的所有方法阵列.

  2. "MemoryTable":一个基本上包含[Key,MemoryRecord] Map和所有操作此Map并在数据库中插入/更新/删除记录的方法的类.

这些类将派生到我们在数据库中的每种表.当然还有其他有用的方法没有在上面列出,但它们在这一点上并不重要.

因此,在启动应用程序时,我们将使用这些类将这些表从SQLite数据库加载到内存中,每次我们需要更改某些数据时,我们都会更改内存并立即将其发布到数据库中.

但是,我们需要您的一些帮助/建议.你能提出一些更简单或更有效的方法来实现这样的事情吗?或者也许一些已经为我们做过的现有课程?

我理解你们要向我们展示的内容,我感谢你们.

但是,假设我们有一个包含2000条记录的表,我需要列出这些记录.对于每一个,我必须查询其他30个表(其中一些有1000条记录,其他有10条记录)在列表中添加其他信息,而这是"飞行"(如你所知,我们必须非常快)此时此刻).

现在您将要说:"只需使用所有这些'连接'构建您的主查询,并一步完成您所需的一切.如果数据库设计合理,SQLite可以非常快......".

好的,但是这个查询会变得非常复杂和确定,即使SQLite非常快,它也会"太慢"(2个4秒,我确认,这对我们来说这不是一个可接受的时间).

另一个复杂因素是,根据用户交互,我们需要"重新查询"所有记录,因为所涉及的表不一样,我们必须与另一组表"重新连接".

因此,另一种方法是只带主要记录(这将永远不会改变,无论用户做什么或想要什么)没有连接(这非常快!)并在每次我们想要一些数据时查询其他表.请注意,在仅包含10条记录的表中,我们将多次获取相同的记录.在这种情况下,这是浪费时间,因为无论SQLite是快速的,查询,游标,获取等等总是会比从一种"内存缓存"中获取记录更昂贵.我想明确指出,我们不打算始终将所有数据保存在内存中,只是我们经常查询的一些表.

我们来到了最初的问题:"缓存"这些记录的最佳方法是什么?我真的很想把重点放在讨论上,而不是"为什么你需要缓存数据?"

architecture performance memcached android design-guidelines

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

从node.js访问memcached的简便方法

我想知道是否有一个好的驱动程序或本机实现将node.js直接连接到memcached.

memcached node.js

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

在Mac上安装"make"

我正在尝试使用本教程在Mac上安装Memcached:http: //tugdualgrall.blogspot.de/2011/11/installing-memcached-on-mac-os-x-and.html 但是当我尝试./configure它说:configure:错误:$ PATH中没有可接受的C编译器,当我尝试使它说:make sh:make:command not found sh-3.2 #yum install make sh:yum:command not found sh-3.2#apt-get安装make sh:apt-get:command not found

我必须提到我有Xcode,但它仍然无法正常工作.我在Mac上真的很新,所以请考虑到这一点:)我真的很感谢你的帮助谢谢!

macos memcached install makefile

28
推荐指数
1
解决办法
4万
查看次数

承诺的JDO写入不适用于本地GAE HRD或可能重用的事务

我在app引擎上使用JDO 2.3.我使用Master/Slave数据存储区进行本地测试,最近切换到使用HRD数据存储区进行本地测试,我的部分应用程序正在破坏(这是预期的).正在破坏的应用程序的一部分是快速发送大量写入的地方 - 这是因为1秒限制的事情,它失败了并发修改异常.

好吧,所以这也是预料之中的,所以我让浏览器在失败后再次重试写入(可能不是最好的黑客,但我只是想让它快速运行).

但是一件奇怪的事情正在发生.即使提交阶段完成且请求返回我的成功代码,一些应该成功的写入(不会获得并发修改异常的写入)也会失败.我可以从日志中看到重试的请求工作正常,但是我猜这些似乎在第一次尝试时提交的其他请求从未"应用".但是从我读到的关于Apply阶段的内容来看,再次写入同一个实体应该强制应用......但事实并非如此.

代码如下.有些事情需要注意:

  1. 我试图使用自动JDO缓存.所以这就是JDO使用memcache的地方.除非您在事务中包装所有内容,否则这实际上不起作用.
  2. 所有请求正在执行的是从实体读取字符串,修改字符串的一部分,并将该字符串保存回实体.如果这些请求不在事务中,那么您当然会遇到"脏读"问题.但是对于事务,隔离应该处于"可序列化"的水平,所以我不知道这里发生了什么.
  3. 被修改的实体是根实体(不在组中)
  4. 我启用了跨群组事务

相关代码(这是简化版):

PersistenceManager pm = PMF.getManager();
Transaction tx = pm.currentTransaction();
String responsetext = "";
try {
    tx.begin();
    // I have extra calls to "makePersistent" because I found that relying
    // on pm.close didn't always write the objects to cache, maybe that
    // was only a DataNucleus 1.x issue though
    Key userkey = obtainUserKeyFromCookie();
    User u = pm.getObjectById(User.class, userkey);
    pm.makePersistent(u); // to make sure it gets cached for next …
Run Code Online (Sandbox Code Playgroud)

java google-app-engine memcached jdo

28
推荐指数
1
解决办法
583
查看次数