问题标签 [libmemcache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 安装 memcached php 扩展
我遵循了无数教程并访问了数十个有关安装 memcached php 扩展的论坛。我正在使用以下命令。
但是当我extension=memcached.so
在文件中添加该行时,php.ini
memcache 将不会显示在 php 信息中。但内存缓存扩展 ( memcache.so
) 将起作用。
memcached - 如何处理 MEMCACHED_SERVER_MARKED_DEAD?
我有一个由 10 个内存缓存组成的集群,使用一致的哈希。memcached_get()
当在不可用的服务器上搜索传递给的密钥时,我只会得到MEMCACHED_SERVER_MARKED_DEAD
响应(返回值)。
在这种情况下,我希望密钥应该重新分配到下一个可用服务器,并且我应该NOTFOUND
从下一个memcached_get()
调用中获取。但是我仍然得到MEMCACHED_SERVER_MARKED_DEAD
,所以我无法设置一个新值。
我发现我可以打电话memcached_behavior_set(..., MEMCACHED_BEHAVIOR_DISTRIBUTION)
。这会导致哈希重新分配,然后它可以按我的意愿工作。但是,我认为这不是一个好方法。是吗?
php - Memcached 缩放:关键“分组”
由于最佳实践是在单个服务器上将经常一起检索的相关键(使用 multiGet)分组以获得最佳性能,因此我对为此构建的客户端函数所采用的隐式机制有几个问题。
我已经看到了两种不同的方法来服务于我认为使用 libmemcache(特别是 php-memcached)的相同目的。第一种也是最明显的方法是使用 getByKey/setByKey 将密钥映射到服务器,第二种是使用选项 OPT_PREFIX_KEY(在 memcached::_construct 下的 php 文档中发布了一个简单的示例),根据文档是“用于为您的项目密钥创建一个'域'”。第二种方法的警告是它只能在每个实例的基础上设置,这可能是也可能不是一件好事。
因此,除非我完全弄错了,而且这两种方法实际上并没有达到相同的目的;与其他方法相比,这有什么明显的好处吗?
当我谈到这个话题时,我的另一个问题是:在一致的散列场景中将密钥映射到服务器有什么影响(如果有的话)?我假设如果一个节点发生故障,自由格式密钥将简单地重新映射到新服务器而没有任何问题..
谢谢!
python - 安装 libmemcached 时 gcc 失败,退出状态为 1
在尝试遵循http://code.google.com/p/python-libmemcached/上的 python-libmemcached 说明时,我在第 3 步遇到了麻烦(“python setup.py install”)
我几乎不知道这意味着什么或做什么。我的电脑上确实有多个版本的 gcc(4.0 和 4.2),并且从谷歌搜索中收集到了足够的信息,这可能很重要。否则完全输了。
提前致谢。
[编辑:遵循@phihag 的指示后]
我现在收到一个完全不同但仍然令人困惑的错误:
php - 在高负载期间 moxi 可以返回在现有键上找不到
在我们的项目中我们使用的是CentOS5.6+php5.2.17+libmemcached+php memcached2+moxi+membase
第一次我以为是应用程序错误,但几周后获得统计数据并检查了一些情况,我发现在 moxi 的 hi 负载期间,它可以返回在 membase 中存在的键上找不到的键。
还有其他人有这个问题吗?可能有一些补丁
memcached - memcache_get() 给出分段错误
我有以下简单的内存缓存代码:::::
memcached_return *rc = NULL;
字符 *sur = "SURBHI";
memcached_set(cacheClient, "SB", strlen("SB"), sur, strlen(sur), (time_t)0, (uint32_t)0);
字符 *value1;
memcached_get(cacheClient, "SB", strlen("SB"), 6, (uint32_t)0, rc);
对 memcache_get 的调用会导致分段错误。调试器给出了以下内容:
0 0x00007ffff79c434c 在来自 /usr/lib/libmemcached.so.5 的 memcached_get_by_key ()
1 0x00007ffff79c454f in memcached_get () from /usr/lib/libmemcached.so.5
有没有人遇到过类似的问题,或者对解决方案有任何想法?
rubygems - 在 Lion 上 gem install memcached 失败
我想在 Mac OS X Lion (10.7.2) 上使用 memcached gem (http://fauna.github.com/fauna/memcached/)。Xcode 4.2 已经安装。
我已经安装了 Memcached 和 Homebrew 的 libmemcached。
我使用 ruby 1.9.3-p0 和 rvm(ruby 版本管理器)。
但我无法安装 memcached gem (1.3.5)。我在 gits 之后粘贴了安装日志。 https://gist.github.com/1395459
在构建 libmemcached 时发生了一些错误。我看到了那个目录。
配置成功。但是 make (all) 失败了。
libmemcached 的配置和制作的完整日志在这里。 https://gist.github.com/1395470
请告诉我如何将 memcached gem 安装到 Lion:/
后记-1
我试过“brew link memcached”。但是返回一个错误。我该怎么办?
后记-2
我尝试删除 /usr/local/Cellar/memcached/。并运行“brew link memcached”,但出现以下错误。
python - 使用 sasl 支持构建 pylibmc
我正在尝试构建最新版本的 pylibmc (1.2.2) 以支持 CentOS 6 上的 SASL。文档说构建需要 libsasl2,我在 /usr/lib64/ 中有它,但是,python 的构建过程包似乎不承认图书馆在那里。
我使用以下命令构建包: python setup.py install --with-libmemcached=/usr/local/lib --with-zlib --with-sasl2
然后运行测试:python runtests.py
有任何想法吗?
php - PHP Memcached 密钥和递增版本号以使缓存无效 - 如何?
我开始向我的应用程序添加一个 memcached 层。到目前为止,一切都很好。
然而,我很快意识到,当有人将文件上传到网站以保持数据相关时,我需要一次性使大量密钥无效/删除。
我已经做了一些阅读,解决这个问题的最常见方法似乎是在每个键上设置一个版本号,然后在用户上传时而不是删除键(因为可能有很多排列)你增加版本号,在下次访问数据时引发缓存未命中。
我不知道从哪里开始才能对此进行编码,而且我不太确定我是否完全了解它。
我的代码目前看起来像这样:-
上面的键 var 中的两个变量是从 get 请求中检索到的,而 get 请求又会检索大量 JSON。(想想产品目录)。
这些变量还决定了查询本身,该查询根据这些变量动态组合在一起。最终,所有这些都为我提供了一个对每个单独的查询都是唯一的键,即使从同一个脚本中我可以生成数百个键。
我希望以上内容很清楚,如果没有,请让我澄清任何要点,以便更好地帮助您回答我的问题。
显然稍后,要设置缓存我正在使用的结果: -
就在我对 JSON 进行编码之前。
所以我的问题真的是......我如何添加某种形式的增量版本控制,以便如果用户上传文件,我可以使该脚本生成的所有密钥无效?
非常感谢任何让我至少走上正轨的人。
php - PHP Memcached 挂在 getDelayed() 上
我在进行测试时在本地机器上遇到问题。我有一个我的 PHP 代码试图访问的 memcached 服务器池。问题是,这些是私有 IP,所以我的本地盒子的代码无权访问它们。
我遇到的问题是 getDelayed() 调用挂起 8 秒等待本地连接。有什么地方可以调整超时时间吗?
为什么它甚至需要在返回之前等待连接?我的理解是 getDelayed() 应该是一个异步调用,但直到超时,控制才会从函数中返回。