问题标签 [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 投票
2 回答
1550 浏览

php - pylibmc 存储的数据无法在 php memcached 中解压

我们有一个应用程序,我们使用 python 在 memcached 中存储大量数据。我们在 python 中使用 pylibmc,在 php 端,我们使用 php-memcached 库。作为总结

  • pylibmc v.1.2.3
  • php-memcached v.2.0.1
  • libmemcached v1.0.8。

除了压缩发挥作用外,其他一切都很好。这就是python中数据压缩的方式

检查 telnet 我们看到一些乱码值,这意味着它被压缩了。现在在 php.ini 中阅读它。

当上面运行时,我们得到相同的乱码值,这意味着它没有被解压缩。pylibmc 使用的是 zlib,因此我也将 php 的压缩类型更改为 zlib。还需要做哪些设置?请帮忙。

为了进一步参考,这里是在 python pylibmc 中设置字符串后 memcached 的输出

这是使用 PHP 的 memcached 客户端存储的字符串的 memcached 输出:

如您所见,这其中有些可疑之处。pylibmc 中的压缩大小为 40 字节,使用 php-memcached 压缩的相同数据为 44 字节。另请注意,使用 pylibmc 存储时标志为 8,使用 php-memcached 存储时标志为 48!

0 投票
1 回答
452 浏览

zend-framework - Zend_Session_SaveHandler_Interface 和 session_id 之谜

我正在尝试根据此代码设置我自己的 Zend_Session_SaveHandler http://blog.digitalstruct.com/2010/10/24/zend-framework-cache-backend-libmemcached-session-cache/

这很好用,只是我的 session_id 表现得很神秘。我正在使用 Zend_Session_SaveHandler_Cache 类,你可以在上面的博客中找到它(除了我把它放在我自己的库中,所以它的名字现在以 My_ 开头)。

在我的引导程序中,我有:

让我的会话基于我的 .ini 文件中的此代码进行

到现在为止还挺好。直到有人尝试登录并调用 Zend_Session::rememberMe()。在 Zend_Session 的评论中可以阅读

通常“rememberMe()”表示安全上下文更改,因此应使用新的会话 ID

这当然是非常正确的,并且生成了一个新的会话 id。成功登录后,用户 Zend_Auth 数据被写入这个新会话。我可以看到这一点,因为我在博客的原始类中添加了一些日志记录功能。

这就是事情出错的地方。这个新 id 显然没有在 Zend_Session 上传递,因为 Zend_Session 一直在读取旧 id 的会话数据。换句话说,没有 Zend_Auth 实例的那个。因此,用户无法再登录。

那么问题来了,如何让我的 saveHandler 在重新生成后使用新的 id 呢?为任何帮助而欢呼。

0 投票
2 回答
10132 浏览

python - 如何在 ubuntu 10.04 中为 django 框架安装 libmemcached

我安装了 libmemcached 0,37 和 ln -s /usr/local/lib/libmemcached.so.2 /usr/lib/libmemcached.so.2

但是当我运行 manage.py 它仍然返回
import _pylibmc RuntimeError: pylibmc requires >= libmemcached 0.32, was compiled with 0.31

我尝试安装较新的 libmemcached,但他们没有文件 libmemcached.so.2

0 投票
1 回答
1249 浏览

php - 如何正确防止memcached“协议注入”?

我发现当我\r\n输入从 memcached 服务器获取值的 key 时,它可以用来注入 memcached 协议来运行另一个命令。以下是代码示例,

在 PHP 中:

在 Python 中:

如果key从用户那里读取,用户可以在 memcached 服务器中执行任意命令,例如运行flush_all以减慢网站速度或为另一个用户设置密码缓存。

为什么客户端库不去除这些非法字符?如何在我的代码中正确防止它?

0 投票
10 回答
29900 浏览

python - 使用 pip 安装 pylibmc 时出错

您好,当我尝试使用 pip 在 OSX Lion 上安装 pylibmc 时,出现以下错误:

有关如何解决此问题的任何线索?

0 投票
0 回答
100 浏览

libmemcache - 未检测到 memcached 故障

我正在使用 libmemcached-0.32。我将行为标志设置如下

memcached_behavior_set(memcached, MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT, 5); memcached_behavior_set(memcached, MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS, 1);

但是当两台 memcached 主机中的一台出现故障时,它不会弹出它。

我需要某种切换机制,比如如果一台服务器出现故障,libmemcached 应该在另一台服务器上获取/设置请求。

我应该怎么办 ?

0 投票
1 回答
1476 浏览

memcached - 何时在非阻塞模式下使用 libmemcached?

我开始将 libmemcached 集成到我的应用程序中并阅读文档,有一个非阻塞模式标志。快速google了一下,似乎非阻塞模式有性能优势,但是非阻塞模式运行libmemcached有什么缺点吗?

0 投票
1 回答
840 浏览

c - libmemcached - memcached_mget 似乎阻塞

我有一个 memcached 服务器。我使用 libmemcached C api 与之交互。我正在使用非阻塞模式和无回复模式(行为标志)。

如果有帮助,我还在 nginx C 模块中使用 libmemcached。

问题是 memcached_mget 似乎被阻塞了,即对于延迟约为 40 毫秒的服务器,memcached_mget 需要 40 毫秒才能完成。这并不完全是异步的。

这是我正在使用的代码:

我正在使用 ASCII 协议。也尝试使用二进制文件,但没有帮助。我也试过 memcached_mget_execute。我正在使用 tc 模拟延迟,如下所示:

0 投票
1 回答
826 浏览

memcached - 在 c 和 java memcached 客户端中是否一致地实现了一致的哈希

我想在 java 中设置 Memcache 值并通过 c 客户端获得相同的值。

是否可以用于多个 memcache 环境。两者都使用相同的哈希标准吗?

0 投票
1 回答
152 浏览

c - 无法存储密钥:在 cgi-bin 下运行 c 程序时出现系统错误

当我在 CentOS 6.4 上从命令行运行以下程序时,我得到了预期的结果,但是当我将它作为 Apache cgi 运行时,我Couldn't store key: SYSTEM ERROR出错了。我正在通过同一个用户运行 Memcached、Apache 和程序。

我可能做错了什么?