问题标签 [libmemcached]
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.
memcached - libmemcached - 检查我是否已连接
有没有一种简单的方法来检查给定memcached_st*
的是否已成功连接到 memcached 服务器?
我正在通过 连接,当我给它提供虚假主机名时memcached_server_add_with_weight
它会返回。MEMCACHED_SUCCESS
同样,memcached_last_error_errno
在调用 to 后立即调用memcached_server_add_with_weight
给我MEMCACHED_SUCCESS
。
mysql - libmemcached 存储 mysql 结果
我想通过 C 中的 libmemcached 将整个 MYSQL 结果存储在 memcached 中。这可能还是我必须将每个行元素分别存储在 memcached 中?
memcached - 使用 google 协议缓冲区附加/前置的 memcache
已解决:我尝试将单个 SerialKey 附加到列表中。当我现在用一个键附加一个 SerialKeyList 时,它可以正常工作。
我将 memcached 与 libmemcached 和 google 协议缓冲区一起使用,以在缓存中保存一个列表,该列表由元素列表和列入黑名单的元素列表组成。
.proto 是:
我想用 memcached_append() 附加 SerialKey 或 SerialBlackKey 类型的单个元素。我使用一个 SerialKey 元素(使用 memcached_set(SerialKeyList))初始化列表,然后附加一个 SerialBlackKey 元素(使用 memcached_append)。
从 memcached 解析列表并使用 PrintDebugString() 打印时得到的结果是
因此创建了两个列表,但未正确读取第二个元素。
这应该是可能的吗?从 Protobuf 编码文档中,我了解到重复字段不必跟随另一个,因此应该可以交错其他类型的字段。
/ EDIT:列表中只有一种类型的元素(SerialKey)有同样的问题。这里我使用 SerialKey 上的另一个属性来确定它是否在黑名单中。原型:
c++ - 集群节点的 libmemcached 故障转移
我在“c”中使用 libmemcached 来写入数据,使用 MEMACACHED_DISTRIBUTION_CONSISTENT_KETAMA。所有密钥都很好地分布在所有集群节点上,但是当我关闭其中一个节点时,密钥不会迁移。在谷歌上搜索并不清楚如何设置 libmemcached 自动执行此操作。有人有这方面的经验吗?
php - 是什么导致 memcached 错误 10(“服务器错误”)?
使用 PHP,我在 memcached 中保留一个数组,作为以下过程的一部分:
- 从 memcached 中获取数组
- 对数组中的第一项执行操作
- 根据操作结果更新数组
- 在 memcached 中设置数组
该数组包含作为字符串的 URL。
对于大数组大小,memcached 集操作失败。最近,它因包含 78175 个 URL 的数组而失败。
我从 memcached 得到的错误有点笼统:
libmemcached 文档对于这个特定错误几乎没有用处。
我使用的代码非常简单:
libmemcached 文档对此错误几乎没有直接帮助,而且错误本身含糊不清是可以理解的。
memcached 错误 10 的原因可能是什么?
c++ - 在没有 value_length 的 libmemcached 中使用 memcached_get()
所以我得到了一个非常相关的问题:libmemcached 中的 memcached_get() 问题
从文档中对我来说似乎并不明显或不可能。是否可以在不知道数据长度的情况下根据键获取值?我计划让多个线程更改键的值,因此无法保存值的先前长度。我尝试将*value_length设置为 NULL、0 或任意高数而没有效果(例如程序崩溃)。我希望这可以通过以 null 结尾的字符串来实现,但它不知道 libmemcached 的内部结构。任何建议,指针?谢谢。
ubuntu - libmemcached-1.0.8 make 在 ubuntu lucid 中失败
我试图libmemcached-1.0.8
在 ubuntu lucid 中从源代码制作和安装。我尝试了这些步骤
make 命令导致了这个错误
我已经安装了 memcached 使用
我试图检查 memcached 在哪里,使用whereis memcached
..它显示
有人可以告诉我应该怎么做才能正确制作和安装这个库吗?
编辑:
根据@sarnold 的建议,我使用了
进而
现在,文件夹中有 13 个以“mem”开头的新可执行/usr/bin
文件
django - 带有 Django 的 Heroku 上的 Memcached:无法安装 pylibmc / memcacheify
我在这方面花了很多时间,这显然超出了我的新手理解/技能范围。我尝试使用 pip install 安装django-heroku-memcacheify,这会引发错误。我将问题追踪到pylibmc,这导致了所有问题。这是错误日志中有趣的部分之一:
_pylibmcmodule.h:42:36:错误:libmemcached/memcached.h:没有这样的文件或目录
这是(几乎)完整的回溯:
所以这是交易
我无法在我的本地环境 b/c 中对其进行测试,我正在 Windows 上运行。但是从我读过的内容来看,libmemcached已经安装在 heroku 上。而且似乎没有其他人对 pylibmc 有任何问题,因为我在谷歌上找不到任何东西。在这篇文章中,他们正在谈论:
如果他们检测到您正在加载 pylibmc,他们将为您引导 libmemcached
这可能是问题所在,要么没有提供,要么路径错误。任何帮助表示赞赏!如果这不起作用,我将不得不使用 Redis,这似乎要困难得多……不知道我是否足够先进。
编辑 可能无关紧要,但我使用的是带有 init 的设置文件夹而不是 settings.py 文件。我听说这会导致一些奇怪的行为,因为 heroku 并不总是记得这是可能的。
编辑 2
由于有数百人在 heroku 上运行 memcached 和 django 没有任何问题,我认为 heroku 用户不应该使用某种 hack 来安装 libmemcached。当 heroku 在您的需求文件中检测到 pylibmc 时,文档会谈论它,就好像它是为您引导的一样。这使我得出结论:A)我的设置或我使用的其中一个应用程序有问题,或者B) heroku 最近更改了某些内容并破坏了 libmemcached for django 的自动引导。我尝试使用 heroku config:add CLEAN_VIRTUALENV=true 进行全新安装,但这现在也不起作用。我希望它是A并且有人遇到了同样的问题。如果是B我不知道如何解决它。
macos - libmemcached 和 PHP memcached 库:在 OS X 上崩溃——超时?
我使用 Homebrew 进行所有安装,但在这里遇到了一些麻烦......
所以我有一个 PHP 应用程序,无论出于何种原因,它都使用“memcache”和“memcached”模块。任何。
系统是 OS X Lion,10.7.4。Apache 是 Apple 随操作系统 Apache/2.2.21 提供的库存。我正在使用 Homebrew 的 PHP 5.3.14。
我安装了我需要的一切:
brew install libmemcached memcached php53 php53-memcache php53-memcached
并进行配置——将 Apache 设置httpd.conf
为指向 PHP .so 文件,并将 memcache 和 memcached 扩展添加到我的php.ini
我加载了我的应用程序......它使 httpd 崩溃了!
这是我得到的故障转储(长转储):https ://gist.github.com/3125309
如果我brew uninstall libmemcached
弹回 httpd,我就可以正常访问我的应用程序,但是 memcached 实际上并没有工作,因为它(dur)找不到 libmemcached。
我真的很想让 memcached 在本地正常工作,但我不确定这里发生了什么。这只是 PHP 的一个问题;我可以使用 Python 的python-memcached
模块来访问它(但我不确定它是否使用 libmemcached)。
有什么想法吗?我在故障转储中没有看到任何看起来有用的东西:(
编辑:啊,行号很有帮助!这是关联的 libmemcached 源代码块:
所以这听起来像是一个超时问题?但是我的 memcached 在本地主机上,它不应该超时......除非它没有尝试连接到正确的服务器。
不过,为什么这会导致完整的 httpd 崩溃?
EDIT2:我在禁用 SNDTIMEO 和 RCVTIMEO 的情况下重新编译,现在我很高兴启动并运行......但是,A)为什么配置脚本确定可以启用它们,B)为什么它会导致 httpd 崩溃?
php - PHP 中的 memcached 持久性无法按预期工作
我尝试了一些不同的 memcached 库和插件版本,以实现 PHP memcache 客户端和 memcached 服务器之间的真正持久性。
问题是仍然打开和关闭连接,以便连接计数器上升,而不是重用现有的持久连接。
我已经从 Redhat 机器上的最新源代码编译了 memcached 守护进程。我使用版本 memcached-1.4.14 并以“#/opt/memcached/bin/memcached -vvvv”开头
我还从最新的源版本 memcached-2.0.1 编译的 php 插件,我已经针对 libmemcached-1.0.9 编译它以使其保持最新。目前它不能针对 libmemcached-1.0.10 进行编译。
我的 PHP 脚本如下所示:
在触发脚本时,我在输出中看到没有添加服务器,只有在超时时间之后。
但是连接计数器仍然上升,我想客户端创建了一个连接,并且在服务器端重新使用了持久连接。
在服务器端,我得到详细的输出,告诉我使用了持久性:
我们希望在具有大量传入连接的高性能环境中使用 memcache,而当前的连接数量确实会杀死 apache 子代。任何想法如何实现真正的持久性?
使用的软件:
- 红帽企业 Linux 服务器 6.2 版(圣地亚哥)
- PHP 版本 5.3.3
- Prefork 中的 Apache/2.2.15
- 内存缓存服务器 1.4.14
- libmemcached 1.0.9
- PHP memcached 插件 2.0.1