我已经很好地安装了 memcached,现在我需要安装 PECL 扩展 memcache。我正在运行 RedHat x86_64 es5。安装给了我这个:
downloading memcache-2.2.6.tgz ...
Starting to download memcache-2.2.6.tgz (35,957 bytes)
..........done: 35,957 bytes
11 source files, building
running: phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
Enable memcache session handler support? [yes] :
Notice: Use of undefined constant STDIN - assumed 'STDIN' in PEAR/Frontend/CLI.php on line 304
Warning: fgets() expects parameter 1 to be resource, string given in PEAR/Frontend/CLI.php on line 304
Warning: fgets() …Run Code Online (Sandbox Code Playgroud) 我想知道在用于提供内容时是否有人对 Varnish Vs Memcache 有任何评论/基准/建议(通常 2-5kb JS 文件取决于请求中的参数;可能有数千个差异文件)
目前我们正在使用 nginx + Varnish + LAMP 来做到这一点。
我正在阅读 nginx 的 memcached 模块,想知道是否有人在 Memcache 中缓存内容并直接从 nginx 提供服务(或从 LAMP 中提取,以防万一),而不是将请求传递给 Varnish 并让它执行同样的工作。
总体而言,是否有任何关于使用 Memcache Vs Varnish 设置和获取(以及偶尔清除)内容(通常为 2-5kb)的基准
谢谢
我在安装 libmemcached 时得到这个
root@server [/libmemcached]# make
make all-am
make[1]: Entering directory `/libmemcached'
if /bin/sh ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I. -I. -I. -ggdb -DBUILDING_HASHKIT -MT libhashkit/libhashkit_libhashkit_la-aes.lo -MD -MP -MF "libhashkit/.deps/libhashkit_libhashkit_la-aes.Tpo" -c -o libhashkit/libhashkit_libhashkit_la-aes.lo `test -f 'libhashkit/aes.cc' || echo './'`libhashkit/aes.cc; \
then mv -f "libhashkit/.deps/libhashkit_libhashkit_la-aes.Tpo" "libhashkit/.deps/libhashkit_libhashkit_la-aes.Plo"; else rm -f "libhashkit/.deps/libhashkit_libhashkit_la-aes.Tpo"; exit 1; fi
./libtool: line 866: X--tag=CXX: command not found
./libtool: line 899: libtool: ignoring unknown tag : command not found
./libtool: line 866: X--mode=compile: command not found
./libtool: …Run Code Online (Sandbox Code Playgroud) 我刚刚通过以下方式在 Ubuntu 14.04 上安装了内存缓存(不是内存缓存)
sudo pecl install memcache
Run Code Online (Sandbox Code Playgroud)
该模块在 phpinfo 输出中显示为已加载。
但我看不到守护进程是否正在运行。
我试过了
sudo ps -e | grep memcachesudo ps -e | grep memcachesudo service memcache status -> sudo: /etc/init.d/memcache: 命令未找到sudo /etc/init.d/memcache status -> 内存缓存:无法识别的服务大多数谷歌搜索都给出了对我不起作用的memcached 的说明
如何检查 memcache 是否正在运行?
我们的 memcache 安装最近开始删除密钥,我们不确定为什么。大量密钥同时消失。
Memcache 报告驱逐低到不存在,我们的应用程序无法清除 memcache(它只能删除特定键)。即使应用程序不知道的密钥也会被删除,因此我们非常确信它们已经过期。然而,我们的内存缓存配置已经有一段时间没有被触及了。
以前有没有人调试过这样的问题,如果是这样,您是否建议我们采取任何步骤?memcache 的过期策略有多灵活 - 我们是否可能突然遇到基于(例如)键写入频率的标准?
有没有人提供托管在亚马逊 ec2 中的容错(复制)内存缓存解决方案,需要零维护并且只提供一个 IP?
我知道亚马逊提供 ElastiCache。但它仍然是相当低的水平并且有一些缺点:
我梦想有一个托管服务,它为我提供一个 IP 地址并且“始终有效”。
谢谢,马塞尔
有什么办法可以配置 nginx 使用 memcache 来存储缓存数据,而不是使用存储在硬盘上的文件?
我正在将一些服务器从 Ubuntu 16 迁移到 Ubuntu 18,但我无法让 php 会话和 memcache 正常工作。
在当前 (Ubuntu 16) 设置中,有三台服务器使用 memcache(注意:不是 memcached!)共享会话。
我相信我已经在新服务器上复制了当前设置,但它不起作用,我在 apache 错误日志中收到以下错误:
PHP Warning: session_start(): Failed to read session data: memcache (path: tcp://10.32.82.6:11211?persistent=1&weight=1&timeout=1&retry_interval=15,tcp://10.32.82.7:11211?persistent=1&weight=1&timeout=1&retry_interval=15,tcp://10.32.82.8:11211?persistent=1&weight=1&timeout=1&retry_interval=15)
Run Code Online (Sandbox Code Playgroud)
在phpinfo()我看到session.save_path和session.save_handler设置正确(如上面的日志消息所示)。
如果我去三台机器中的任何一台,我都可以远程登录到任何其他服务器上的端口 11211。
如果我查看日志(设置为 -vv),我可以看到正在发生的事情和相当多的“NOT_FOUND”语句,但我真的不知道如何解释这些日志。
在/etc/php/7.2/mods-available/memcache.ini:
memcache.allow_failover="1"
memcache.max_failover_attempts="4"
memcache.session_redundancy="4"
Run Code Online (Sandbox Code Playgroud)
在当前(Ubuntu 16)设置中,我记得尝试过 memcached 和 memcache 并确定 memcache 是正确的解决方案。在新设置上尝试 memcached 是我最后的手段,因为我觉得 memcache应该可以工作,而我只是遗漏了一些东西,或者我不知道 Ubuntu 18 中发生了一些变化。
我有基于 Memcached 变量的聊天引擎,将它们放入数组并通过 jquery 在另一端读取它们,
它在 95% 的情况下都可以正常工作,但是当服务器负载很高时 memcached(假设它是 memcached)崩溃和浏览器卡住了。
我不认为它的 jquery 问题,因为这只发生在服务器负载非常高的时候。
我需要一种方法来监视 memcached 服务器或以某种方式将日志文件写入失败/错误所在的位置...
关于我如何做到这一点的任何想法?或者知道为什么 memcached 服务器会失败?我按如下方式运行 memcached
$GLOBALS['MemCached'] = FALSE;
$GLOBALS['MemCached'] = new Memcache;
$GLOBALS['MemCached']->pconnect('localhost', 11211);
Run Code Online (Sandbox Code Playgroud)
我的 memcached 配置如下
#! /bin/sh
#
# chkconfig: - 55 45
# description: The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/memcached
# pidfile: /var/run/memcached/memcached.pid
# Standard LSB functions
#. /lib/lsb/init-functions
# Source function library.
. /etc/init.d/functions
PORT=11211
USER=memcached
MAXCONN=1024
CACHESIZE=128
OPTIONS=""
if [ -f …Run Code Online (Sandbox Code Playgroud) 我正在尝试安装 [memcached-1.2.8-repcached-2.2.1]( http://sourceforge.net/projects/repcached/files/latest/download?source=files )
运行make命令后出现以下错误:
进行全递归
make[1]:进入目录`/usr/local/src/pro/memcached-1.2.8-repcached-2.2.1'
在文档中制作所有内容
make[2]:进入目录`/usr/local/src/pro/memcached-1.2.8-repcached-2.2.1/doc'
make[2]:对“所有”无事可做。
make[2]:离开目录`/usr/local/src/pro/memcached-1.2.8-repcached-2.2.1/doc'
make[2]:进入目录`/usr/local/src/pro/memcached-1.2.8-repcached-2.2.1'
gcc -DHAVE_CONFIG_H -I。-DNDEBUG -g -O2 -MT memcached-memcached.o -MD -MP -MF .d> eps/memcached-memcached.Tpo -c -o memcached-memcached.o
test -f 'memcached.c' || echo './'memcached.cmemcached.c:在函数“add_iov”中:
memcached.c:697: 错误:'IOV_MAX' 未声明(第一次在这个函数中使用)
memcached.c:697: 错误: (每个未声明的标识符只报告一次
memcached.c:697:错误:对于它出现的每个函数。)
make[2]: *** [memcached-memcached.o] 错误 1
make[2]:离开目录`/usr/local/src/pro/memcached-1.2.8-repcached-2.2.1'
make[1]: *** [all-recursive] 错误 1
make[1]:离开目录`/usr/local/src/pro/memcached-1.2.8-repcached-2.2.1'
make: *** [all] 错误 2
操作系统:Centos5.7 64位
gcc-4.1.2-51.el5
gcc-c++-4.1.2-51.el5
libgcc-4.1.2-51.el5
注意:已经安装了用于 php 的 Memcached 和 memcache 扩展
root@server[~]# memcached -h
内存缓存 1.4.5
php 分机 …
我的客户正在运行许多使用 memcached 的脚本,但他们都使用 localhost 作为地址。我的本地主机服务器现在内存不足,因为它正在做很多其他事情,比如 WWW 和 MySQL 服务器。
现在我有了一个全新的 16 GB RAM 服务器,我可以将它用作专用的 memcached 服务器。如何将 localhost:12111 重定向到 domain.com:12111 服务器?
我无法将 localhost 切换到 /etc/hosts 中的其他内容,因为我所有的数据库都使用这样的地址。