问题标签 [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.

0 投票
3 回答
6499 浏览

apache - 在 Ubuntu 12.04 上安装 memcached

它提示:

尝试了默认值和许多不同的目录和下载的源。当然喜欢这些模糊的错误信息。

我在哪里可以找到它正在寻找的文件,它到底在寻找什么?

已经搜索了几个小时,似乎没有任何帮助。

我尝试从源代码编译,但遇到了很多警告和错误消息,最重要的是 php-memcached 项目似乎不包含配置脚本。

“找不到文件或目录”这是错误。它需要 libmemcached 目录,但我不知道该目录中应该包含什么。

我只是希望它以任何可能的方式加载到 php 中。这是在开发 VM 上,因此不需要为生产做好准备。只需要工作。

[编辑]

我已经安装了 memcache,但我需要 memcached。

我正在使用:

Bitnami 灯栈 5.4.29-0 Ubuntu 12.04

[更新]

我找到了这个:

所以我建议使用/安装来自 PECL 的官方 memcached 扩展并更新您的应用程序。

https://github.com/kajidai/php-libmemcached

否则,您必须通过以下步骤从头开始安装 libmemcached 扩展:

到了这个:

检查 libmemcached 扩展的位置...配置:错误:找不到 libmemcached 标头

更模糊的错误信息。

[更新]

我通过升级到 14.04 解决了这个问题。似乎这是解决我的问题的最快途径。

0 投票
1 回答
741 浏览

php - Memcached 中短超时的性能开销

我想知道 memcached 中的短超时(60 秒)是否会对性能产生任何负面影响,VS 更长的超时,但忽略返回的值(如果它是在 60 秒前存储的)。

有很多缓存未命中(如果该项目已被删除)会对性能产生影响吗?

快速说明:如果缓存未命中,我不会重新设置值,只是检查它是否存在

示例场景:

考虑在您的网站上,您希望防止双重操作的情况(例如,在您的网站上单击两次付款按钮,这会注册两次付款。在我们的案例中,我们不处理付款)。

一个简单的技巧是将用户操作在 Memcached 中保留一小段时间——当然有更好的方法可以做到这一点——并检查在最后几秒钟内是否进行了相同的调用。

现在,您可以将缓存设置为短时间,然后检查缓存中是否存在用户的相同操作。或者,将last_user_action缓存设置很长一段时间,以及操作的时间,应用程序可以根据预期的时间段检查时间。

短期的警告是有很多缓存删除(过期键)和很多缓存未命中(因为项目已被删除)。更长的时间只会使用更多的内存。

所以,我想知道大量删除(过期元素)和缓存未命中的开销。

0 投票
0 回答
1415 浏览

php - Memcached / Memcache 键未过期

似乎 Memcached 的数据按预期过期,但密钥本身永不过期。为什么值为零后键仍然存在?当我运行此代码时:

取自http://docs.phalconphp.com/en/latest/api/Phalcon_Cache_Backend_Memcache.html

我可以成功地将数组保存在 $myNewRandomKey 键下。然后我在 30 秒超时后运行此代码:

并看到键仍然存在,尽管数据为 NULL,但在超时到期之前已填充该键。这对我来说似乎只对了一半。钥匙也应该已经清除了。

但是,如果我运行 $cache->delete($myNewRandomKey); 密钥将完全擦除。不一致!

底线:如果密钥没有过期或者 memcached 有问题,那么它们会随着时间的推移而增长和增长,直到导致另一种类型的头痛——系统管理员的头痛?

这些是版本,但我希望这与问题无关,并且我的期望是错误的。

向所有 SO'ers 干杯!

SL

0 投票
1 回答
320 浏览

memcached - 关于 Memcached 源码运行问题

使用以下链接,尝试运行 memcached 源代码...

在运行它时,配置命令正常工作。

当我运行 make 命令时,它会抛出以下错误......如何解决这个问题?

syscon@syscon-OptiPlex-3020:~/Documents/work/memcached-1.4.5$ sudo make make all-recursive make[1]: 进入目录/home/syscon/Documents/work/memcached-1.4.5' Making all in doc make[2]: Entering directory/home/syscon/Documents/work/memcached-1.4.5/doc' make all-am make[3]: 进入目录/home/syscon/Documents/work/memcached-1.4.5/doc' make[3]: Nothing to be done forall-am'。make[3]: 离开目录/home/syscon/Documents/work/memcached-1.4.5/doc' make[2]: Leaving directory/home/syscon/Documents/work/memcached-1.4.5/doc' make[2]: 进入目录/home/syscon/Documents/work/memcached-1.4.5' gcc -std=gnu99 -DHAVE_CONFIG_H -I. -DNDEBUG -g -O2 -pthread -Wall -Werror -pedantic -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -MT memcached-memcached.o -MD -MP -MF .deps/memcached-memcached.Tpo -c -o memcached-memcached.otest -f 'memcached.c' || echo './' memcached.c memcached.c: In function ‘complete_incr_bin’: memcached.c:1023:16: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] c->binary_header.request.cas == ITEM_get_cas(it))) { ^ memcached.c:1044:13: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] c->cas = ITEM_get_cas(it); ^ memcached.c:1061:17: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] c->cas = ITEM_get_cas(it); ^ memcached.c: In function ‘process_bin_get’: memcached.c:1193:9: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] rsp->message.header.response.cas = htonll(ITEM_get_cas(it)); ^ memcached.c: In function ‘process_bin_update’: memcached.c:1889:5: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] ITEM_set_cas(it, c->binary_header.request.cas); ^ memcached.c:1905:5: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] if (ITEM_get_cas(it) != 0) { ^ memcached.c: In function ‘process_bin_append_prepend’: memcached.c:1949:5: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] ITEM_set_cas(it, c->binary_header.request.cas); ^ memcached.c: In function ‘process_bin_delete’: memcached.c:2014:9: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] if (cas == 0 || cas == ITEM_get_cas(it)) { ^ memcached.c: In function ‘do_store_item’: memcached.c:2127:9: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] else if (ITEM_get_cas(it) == ITEM_get_cas(old_it)) { ^ memcached.c:2127:9: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] memcached.c:2144:25: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] (unsigned long long)ITEM_get_cas(old_it), ^ memcached.c:2145:25: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] (unsigned long long)ITEM_get_cas(it)); ^ memcached.c:2158:13: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] if (ITEM_get_cas(it) != 0) { ^ memcached.c:2160:17: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] if (ITEM_get_cas(it) != ITEM_get_cas(old_it)) { ^ memcached.c:2160:17: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] memcached.c:2202:13: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] c->cas = ITEM_get_cas(it); ^ memcached.c:2214:9: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] c->cas = ITEM_get_cas(it); ^ memcached.c: In function ‘process_get_command’: memcached.c:2592:45: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] (unsigned long long)ITEM_get_cas(it)); ^ memcached.c: In function ‘process_update_command’: memcached.c:2751:5: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] ITEM_set_cas(it, req_cas_id); ^ memcached.c: In function ‘do_add_delta’: memcached.c:2870:9: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] ITEM_set_cas(it, (settings.use_cas) ? get_cas_id() : 0); ^ memcached.c: In function ‘main’: memcached.c:4630:13: error: variable ‘udp_port’ set but not used [-Werror=unused-but-set-variable] int udp_port; ^ cc1: all warnings being treated as errors make[2]: *** [memcached-memcached.o] Error 1 make[2]: Leaving directory/home/syscon/Documents/work/memcached-1.4.5' make[1]: * [all-recursive] Error 1 make[1]: Leaving directory `/home/syscon/Documents/work/ memcached-1.4.5' make: * [all] 错误 2

0 投票
2 回答
3290 浏览

php - 如何为 Mac OS X Yosemite 10.10 安装 libmemcached 以便在 Mamp 3 上安装 memcached.so PHP 扩展?

我需要在运行 Mac OS X Yosemite 的 MacBook Pro 上安装 libmemcached。

我已经安装了 memcached 守护程序,但是为了使 PHP memcached.so PECL 扩展工作,我需要安装 libmemcached。

我已经从https://launchpad.net/libmemcached/+download下载了 tar.gz ,查看了文件 README.FIRST:

所以我安装了 Bazaar,然后输入以下命令:

但我得到的是:

如果我尝试运行./configure然后make,我会收到很多警告,例如:

和2个错误:

所以实际上我无法安装 libmemcached。有什么我可以尝试的选项,我该如何解决这个问题?为什么所有这些错误?

感谢关注!

希望得到一些帮助。

0 投票
2 回答
169 浏览

php - 使用 Memcached 存储 PHP 变量是否涉及写入硬盘驱动器?

因为这是我想要做的。我想让一些变量值可用于 PHP 脚本。这些值每分钟从 Internet 获取(它们会更改)。我不希望将这些值再次写入 SSD。Memcached 是否可以在任何给定时间仅将它们存储在系统内存上,而无需写入 SSD?谢谢。

0 投票
1 回答
95 浏览

c - 不推荐基于堆栈的分配?

libmemcached 文档有这个注释:

您可能希望避免将 memcached_create(3) 或 memcached_clone(3) 与基于堆栈的分配一起使用。与 ABI 安全相关的最常见问题涉及堆分配结构。

我该如何理解它?在这种情况下,ABI 代表Application Binary Interface? 我想memcached_clone()从本地函数范围内的变量中提供指向结构的指针。安全吗?

示例 - 此代码可以吗?

0 投票
1 回答
89 浏览

django - django memcached on red hat

我已经使用 location:/path/to/memcached.sock/ 在 settings.py 中安装了 pylibmc、libmemcached 并激活了 memcached

当我运行网站时,我得到:libmemcached.so.11:无法打开共享对象文件:没有这样的文件或目录

现在我打开一个 ssh shell,打开 python3.4,导入 pylibmc 并使用它(使用端口 11211 上的 memcached 会话),它工作得很好。

我尝试使用 libmemcached 的选项路径重新安装 pylibmc,但仍然出现相同的错误。我没有选择了。

这是我的缓存配置:

0 投票
1 回答
321 浏览

c++ - 无法使用 libmemcached 连接到 memcachedb

我正在编写一个能够使用C++ API连接到memcachedb实例的小型 C++ 应用程序。libmemcached

memcachedb实例是使用以下命令创建的:

我可以通过执行以下操作来检索服务器 STATS:

要以编程方式检索服务器 STATS,我使用以下代码:

我正在使用以下内容编译应用程序Makefile

当我使用以下命令执行应用程序时:

它无法检索服务器 STATS:

我究竟做错了什么?我将不胜感激。

0 投票
0 回答
23 浏览

mysql - 如何使用 libmemcached 的 C API 将 MYSQL_RES 结果缓存到 memcached 服务器中

我是 libmemcached 的新手,我正在使用 libmemcached 来缓存 mysql_store_result 的结果。一个问题是结果的值不是未知的,有什么办法解决吗?非常感谢你的帮助。