问题标签 [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.
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 解决了这个问题。似乎这是解决我的问题的最快途径。
php - Memcached 中短超时的性能开销
我想知道 memcached 中的短超时(60 秒)是否会对性能产生任何负面影响,VS 更长的超时,但忽略返回的值(如果它是在 60 秒前存储的)。
有很多缓存未命中(如果该项目已被删除)会对性能产生影响吗?
快速说明:如果缓存未命中,我不会重新设置值,只是检查它是否存在
示例场景:
考虑在您的网站上,您希望防止双重操作的情况(例如,在您的网站上单击两次付款按钮,这会注册两次付款。在我们的案例中,我们不处理付款)。
一个简单的技巧是将用户操作在 Memcached 中保留一小段时间——当然有更好的方法可以做到这一点——并检查在最后几秒钟内是否进行了相同的调用。
现在,您可以将缓存设置为短时间,然后检查缓存中是否存在用户的相同操作。或者,将last_user_action缓存设置很长一段时间,以及操作的时间,应用程序可以根据预期的时间段检查时间。
短期的警告是有很多缓存删除(过期键)和很多缓存未命中(因为项目已被删除)。更长的时间只会使用更多的内存。
所以,我想知道大量删除(过期元素)和缓存未命中的开销。
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
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 for
all-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.o
test -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
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。有什么我可以尝试的选项,我该如何解决这个问题?为什么所有这些错误?
感谢关注!
希望得到一些帮助。
php - 使用 Memcached 存储 PHP 变量是否涉及写入硬盘驱动器?
因为这是我想要做的。我想让一些变量值可用于 PHP 脚本。这些值每分钟从 Internet 获取(它们会更改)。我不希望将这些值再次写入 SSD。Memcached 是否可以在任何给定时间仅将它们存储在系统内存上,而无需写入 SSD?谢谢。
c - 不推荐基于堆栈的分配?
libmemcached 文档有这个注释:
您可能希望避免将 memcached_create(3) 或 memcached_clone(3) 与基于堆栈的分配一起使用。与 ABI 安全相关的最常见问题涉及堆分配结构。
我该如何理解它?在这种情况下,ABI 代表Application Binary Interface
? 我想memcached_clone()
从本地函数范围内的变量中提供指向结构的指针。安全吗?
示例 - 此代码可以吗?
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,但仍然出现相同的错误。我没有选择了。
这是我的缓存配置:
c++ - 无法使用 libmemcached 连接到 memcachedb
我正在编写一个能够使用C++ API连接到memcachedb
实例的小型 C++ 应用程序。libmemcached
该memcachedb
实例是使用以下命令创建的:
我可以通过执行以下操作来检索服务器 STATS:
要以编程方式检索服务器 STATS,我使用以下代码:
我正在使用以下内容编译应用程序Makefile
:
当我使用以下命令执行应用程序时:
它无法检索服务器 STATS:
我究竟做错了什么?我将不胜感激。
mysql - 如何使用 libmemcached 的 C API 将 MYSQL_RES 结果缓存到 memcached 服务器中
我是 libmemcached 的新手,我正在使用 libmemcached 来缓存 mysql_store_result 的结果。一个问题是结果的值不是未知的,有什么办法解决吗?非常感谢你的帮助。