草庐IT

keeping-memcache-consistent

全部标签

php - Memcached 在 Symfony2+Doctrine2 应用程序负载下显着变慢

我一直在对我的Symfony2应用程序进行负载测试,我发现的瓶颈之一似乎是Memcached。我在网络服务器上使用memcached来缓存学说元数据和查询,并且我使用亚马逊的elasticachememcached作为学说的结果缓存。在没有任何负载的情况下,我的端到端时间是300-350毫秒,而memcached占其中大约10毫秒但是,在25个并发请求的负载下,我的总响应速度减慢到大约2500毫秒,其中很大一部分似乎是memcached39个memcached查询中有34个正在获取类元数据,其中一些是0.1毫秒,另一些是40或50毫秒,这似乎是相当随机的。我已经尝试增加本地内存缓存配置

php - Memcached key 生成 从参数到函数

这个问题类似于aquestionaskedaboutjava,但我在php中执行此操作,因此我认为它不符合重复项的条件。我想要一种在调用此函数时生成确定性key的方法。该功能应该像读取缓存一样运行。如果key存在,则检索数据。如果不是,则调用存储数据的函数,然后返回它。这是我所拥有的并且它有效,但我不确定它是否安全以及它是否足够确定性甚至足够独特,因为我对这些主题的理解绝对为0。//$call=functionbeingcalled$args=argumentstothatfunction//$force=forcecachetobypassed,thenupdatedpublicfu

php - memcached.hash 策略有什么用?

我想知道为什么会有memcache.hash_strategyphp.ini设置。手册说:Controlswhichstrategytousewhenmappingkeystoservers.Setthisvaluetoconsistenttoenableconsistenthashingwhichallowsserverstobeaddedorremovedfromthepoolwithoutcausingkeystoberemapped.Settingthisvaluetostandardresultsintheoldstrategybeingused.但不是程序员自己将key映射

php - memcacheD 这个可以吗?

我是memcached的新手。此代码是否容易受到过期缓存竞争条件的影响?你会如何改进它?$memcache=newMemcache;$memcache->connect('127.0.0.1');$arts=($memcache===FALSE)?FALSE:$memcache->get($qparams);if($arts===FALSE){$arts=fetchdb($q,$qparams);$memcache->add($qparams,$arts,MEMCACHE_COMPRESSED,60*60*24*3);}if($artsFALSE){//dostuff}else{//e

php - http :keep-alive keep the php resources open or does it free all the resources? 吗

我在apache服务器上使用httpkeep-alive,比方说我要求它保持连接打开最多2分钟...现在,如果连接被创建并闲置一分钟,php持有的资源,像mysql连接、文件句柄等,将被释放还是它们也会继续存在? 最佳答案 确认。Keep-Alive是一种防止代价高昂的TCP连接协商的机制。您的PHP进程/线程正常启动,需要像往常一样分配所有资源。对于高负载情况,保持事件时间不要太长可能是明智的:所有连接请求都会竞争服务器的空闲连接槽。如果所有插槽都被保持事件连接使用,其他用户可能无法连接。但是,与往常一样,最佳插槽数量和良好的保持

php - Memcached:检索所有键时如何突破限制

由于事实上我无法在网络中找到任何可靠的程序,一旦slab中的键数超过500k,我就会检索所有内存缓存键,我想用PHP编写自己的程序。然后我意识到为什么所有的程序都不能真正适用于如此多的key是有原因的。当我用statscachedump读取键时它只返回一定数量的键,在我的例子中,这些键结束了大约30k。我怎样才能至少得到这500k可能在一个slab中?所有建议使用的“帖子”和“答案”memdump不工作。他们也有这个限制。我正在使用memcached1.4.25 最佳答案 调试完memcached源代码后,我意识到items.c/i

php - 在 PHP 中与 memcached 的持久连接

在我们当前使用的memcached中,我们在高容量服务器中遇到了问题,因为设置和断开与我们的memcache服务器的连接花费了太多时间。使用与memcached的持久连接是否有助于缓解这个问题?此外,连接和使用持久性memcahced连接的首选方法是什么?我正在考虑设置一个“pool_size”变量,然后从1-$POOL_SIZE中随机选择并使用该连接$mem=newMemcached(rand(1,$pool_size));要么我找错了地方,要么没有太多关于此的信息。 最佳答案 pecl/memcache和pecl/memcach

php - Memcached "Could not connect"高峰时段错误

我在我的网站(php、mysql、apache、ubuntu..)上使用memecached它运行速度非常快,但在“高峰时段”我收到很多“无法连接”错误信息,有时用户需要刷新5次才能看到内容。我的服务器上有24GB内存,“top”命令为memcached进程提供了这个:4135nobody200161m37m836S7(%CPU)0.2(%MEM)0:07.06memcachedIlaunchmemcachedserverlikethis:memcached-d-unobody-m8192-p12000-c11212这是我的PHP函数:connect('localhost',11211

php - 在 Memcache 中更新/设置缓存数组的元素

我使用的CMS默认实现了memcached,我正在努力扩展它。一个键包含一系列用户信息,如userstats_id并包含论坛帖子计数、他们喜欢的帖子数量等等信息。key如下所示:[userstats_1]=>Array([forum_posts]=>178[forum_likes]=>16[forum_dislikes]=>0[now_online]=>1)我正在扩展这个key的用途,因为我还想存储用户正在浏览的特定论坛,例如:[userstats_forumbrowsing_1]=>Array([forum_browsing]=>'Foobar')如果我能在[userstats_1]

php - 如何在 Yii2 中设置 memcached 选项?

我试图在配置文件中设置Memcached选项(禁用压缩),但Yii2一直抛出错误。我做错了什么?配置如下:'cache'=>[/*'class'=>'yii\caching\FileCache',*/'class'=>'yii\caching\MemCache','servers'=>[['host'=>'localhost','port'=>11211,],],'useMemcached'=>true,'serializer'=>false,'options'=>['Memcached::OPT_COMPRESSION'=>false,],],错误:带有消息“Memcached::s