我一直在关注微软最近将Velocity推广为分布式缓存解决方案,该解决方案将与Memcached等竞争对手竞争.
我一直在寻找一个64位版本的Memcached for Windows一段时间没有运气,因为我正在研究的ASP.Net MVC项目的一切都是64位,除了64位之外什么都没用.
现在我们已经在测试中使用ASP.NET MVC进行了对冲(很快就希望RTM),但是StackOverflow似乎并没有做得太糟糕,所以我在那里的担忧有限.但速度仍然是一个未知的数量,并且仍将是Beta(或CTP)多年 - 但它确实有 64位!
在这种情况下,有没有人有相关的经验或观点?我们应该等待Velocity的时间 - 它是否足以与Memcached这样的巨头竞争,或者我们是否应该投入时间试图获得64位版本的Memcached?
我试图在memcached conf文件中添加-l 11211 -l 11212.但它只是听第一个,即1121
我只是想知道是否有办法使用通配符清除memcache的键值.
所以说我有一个带有"1234~foo"键和另一个"1234~foo~bar"的缓存.
有什么方法我可以通过使用像clear("1234*")这样的东西来清除缓存并从上面清除它们吗?
我希望这是有道理的.
谢谢.
我最近安装的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
对于将在Web应用程序和富客户端应用程序中使用的.NET组件,似乎有两个明显的缓存选项:System.Web.Caching或Ent.库.缓存块.
在Web应用程序之外使用是否安全?我看到了混合信息,但我认为答案可能并非如此.
我不希望使用它的一个亮点,SqlCacheDependency,但在.NET 3.5中添加CacheItemUpdateCallback似乎是一件非常好的事情.
某些缓存项应始终可用,但应定期刷新.对于这些项目,在删除项目后获取回调不是很方便.看起来客户端必须只是睡眠和轮询,直到重新填充缓存项.
当您不需要分布式缓存时,有什么优缺点?
我几乎尝试过所有东西,但似乎不可能从模型中使用expire_fragment?我知道你不应该而且它不是非MVC,但肯定有很多方法可以做到.
我在lib/cache_helper.rb中创建了一个带有所有过期助手的模块,每个模块都只是一堆expire_fragment调用.我在/ app/sweepers下设置了所有缓存清理器,并在我的应用程序控制器中有一个"include CacheHelper",因此当通过控制器调用时,应用程序中的缓存可以正常工作.
然后事情是我有一些外部守护进程,特别是一些重复的cron任务,它们调用一个调用某种方法的rake任务.此方法执行一些处理并将条目输入到模型中,之后我需要使缓存过期.
这是最好的方法,因为我无法在模型中指定缓存清理程序.直观的观察者似乎是最好的解决方案,但后来它抱怨expire_fragment未定义等等,我甚至尝试将ActionController缓存类包含在观察者中,但这不起作用.我喜欢有关如何为此创建解决方案的一些想法.谢谢.
我们正在设计一个拥有大量数据的Android应用程序("客户","产品","订单"......),我们不希望每次需要某些记录时都查询SQLite.我们希望避免尽可能多地查询数据库,因此我们决定将某些数据始终保留在内存中.
我们最初的想法是创建两个简单的类:
"MemoryRecord":一个基本上包含一个对象数组(string,int,double,datetime等)的类,它们是表记录中的数据,以及从这个数据中获取这些数据的所有方法阵列.
"MemoryTable":一个基本上包含[Key,MemoryRecord] Map和所有操作此Map并在数据库中插入/更新/删除记录的方法的类.
这些类将派生到我们在数据库中的每种表.当然还有其他有用的方法没有在上面列出,但它们在这一点上并不重要.
因此,在启动应用程序时,我们将使用这些类将这些表从SQLite数据库加载到内存中,每次我们需要更改某些数据时,我们都会更改内存并立即将其发布到数据库中.
但是,我们需要您的一些帮助/建议.你能提出一些更简单或更有效的方法来实现这样的事情吗?或者也许一些已经为我们做过的现有课程?
我理解你们要向我们展示的内容,我感谢你们.
但是,假设我们有一个包含2000条记录的表,我需要列出这些记录.对于每一个,我必须查询其他30个表(其中一些有1000条记录,其他有10条记录)在列表中添加其他信息,而这是"飞行"(如你所知,我们必须非常快)此时此刻).
现在您将要说:"只需使用所有这些'连接'构建您的主查询,并一步完成您所需的一切.如果数据库设计合理,SQLite可以非常快......".
好的,但是这个查询会变得非常复杂和确定,即使SQLite非常快,它也会"太慢"(2个4秒,我确认,这对我们来说这不是一个可接受的时间).
另一个复杂因素是,根据用户交互,我们需要"重新查询"所有记录,因为所涉及的表不一样,我们必须与另一组表"重新连接".
因此,另一种方法是只带主要记录(这将永远不会改变,无论用户做什么或想要什么)没有连接(这非常快!)并在每次我们想要一些数据时查询其他表.请注意,在仅包含10条记录的表中,我们将多次获取相同的记录.在这种情况下,这是浪费时间,因为无论SQLite是快速的,查询,游标,获取等等总是会比从一种"内存缓存"中获取记录更昂贵.我想明确指出,我们不打算始终将所有数据保存在内存中,只是我们经常查询的一些表.
我们来到了最初的问题:"缓存"这些记录的最佳方法是什么?我真的很想把重点放在讨论上,而不是"为什么你需要缓存数据?"
architecture performance memcached android design-guidelines
我想知道是否有一个好的驱动程序或本机实现将node.js直接连接到memcached.
我正在尝试使用本教程在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上真的很新,所以请考虑到这一点:)我真的很感谢你的帮助谢谢!
我在app引擎上使用JDO 2.3.我使用Master/Slave数据存储区进行本地测试,最近切换到使用HRD数据存储区进行本地测试,我的部分应用程序正在破坏(这是预期的).正在破坏的应用程序的一部分是快速发送大量写入的地方 - 这是因为1秒限制的事情,它失败了并发修改异常.
好吧,所以这也是预料之中的,所以我让浏览器在失败后再次重试写入(可能不是最好的黑客,但我只是想让它快速运行).
但是一件奇怪的事情正在发生.即使提交阶段完成且请求返回我的成功代码,一些应该成功的写入(不会获得并发修改异常的写入)也会失败.我可以从日志中看到重试的请求工作正常,但是我猜这些似乎在第一次尝试时提交的其他请求从未"应用".但是从我读到的关于Apply阶段的内容来看,再次写入同一个实体应该强制应用......但事实并非如此.
代码如下.有些事情需要注意:
相关代码(这是简化版):
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)