`

Memcache连接出错的问题

 
阅读更多

今天一早突然发现Memcache连接不到了,检查了一下Memcache的服务发现很正常。

 

 

 写道
# ps aux|grep memcached
root 7409 0.0 0.0 130296 1088 ? Ssl 10:14 0:00 memcached -d -m 128 -u root -p 11211 -c 1024 -P /tmp/memcached.pid
root 7426 0.0 0.0 61220 764 pts/3 S+ 10:14 0:00 grep memcached

 既然Memcache很正常那么,为什么我的代码突然就连不上去了呢?

后来一想可能是谁把防火墙开启了,查看一下防火墙状态,出来了一大堆

 

 

 写道
# /etc/init.d/iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306

Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

Chain RH-Firewall-1-INPUT (2 references)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
3 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
5 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631
8 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
10 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
11 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:5900
12 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:5900
13 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

 先把防火墙关掉试试结果可以连到。找到原因了,于是修改一下防火墙的规则,不让它拦截11211端口的连接就可以了。

 

 

 写道
[root@cloud1 ~]# /sbin/iptables -I INPUT -p tcp --dport 11211 -j ACCEPT
[root@cloud1 ~]# /sbin/iptables -I INPUT -p udp --dport 11211 -j ACCEPT
[root@cloud1 ~]# /etc/rc.d/init.d/iptables save
将当前规则保存到 /etc/sysconfig/iptables:[确定]
[root@cloud1 ~]# /etc/init.d/iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:11211
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:11211
3 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306

 

添加两条规则,然后保存一下就可以。

# /sbin/iptables -I INPUT -p tcp --dport 11211 -j ACCEPT

# /sbin/iptables -I INPUT -p udp --dport 11211 -j ACCEPT

# /etc/rc.d/init.d/iptables save

 

如果还不管用就重启一下防火墙

# /etc/init.d/iptables restart

 

memcahced的帮助

 

Memcached的帮助 写道
memcached 1.4.13
-p <num> TCP port number to listen on (default: 11211)
-U <num> UDP port number to listen on (default: 11211, 0 is off)
-s <file> UNIX socket path to listen on (disables network support)
-a <mask> access mask for UNIX socket, in octal (default: 0700)
-l <addr> interface to listen on (default: INADDR_ANY, all addresses)
<addr> may be specified as host:port. If you don't specify
a port number, the value you specified with -p or -U is
used. You may specify multiple addresses separated by comma
or by using -l multiple times
-d run as a daemon
-r maximize core file limit
-u <username> assume identity of <username> (only when run as root)
-m <num> max memory to use for items in megabytes (default: 64 MB)
-M return error on memory exhausted (rather than removing items)
-c <num> max simultaneous connections (default: 1024)
-k lock down all paged memory. Note that there is a
limit on how much memory you may lock. Trying to
allocate more than that would fail, so be sure you
set the limit correctly for the user you started
the daemon with (not for -u <username> user;
under sh this is done with 'ulimit -S -l NUM_KB').
-v verbose (print errors/warnings while in event loop)
-vv very verbose (also print client commands/reponses)
-vvv extremely verbose (also print internal state transitions)
-h print this help and exit
-i print memcached and libevent license
-P <file> save PID in <file>, only used with -d option
-f <factor> chunk size growth factor (default: 1.25)
-n <bytes> minimum space allocated for key+value+flags (default: 48)
-L Try to use large memory pages (if available). Increasing
the memory page size could reduce the number of TLB misses
and improve the performance. In order to get large pages
from the OS, memcached will allocate the total item-cache
in one large chunk.
-D <char> Use <char> as the delimiter between key prefixes and IDs.
This is used for per-prefix stats reporting. The default is
":" (colon). If this option is specified, stats collection
is turned on automatically; if not, then it may be turned on
by sending the "stats detail on" command to the server.
-t <num> number of threads to use (default: 4)
-R Maximum number of requests per event, limits the number of
requests process for a given connection to prevent
starvation (default: 20)
-C Disable use of CAS
-b Set the backlog queue limit (default: 1024)
-B Binding protocol - one of ascii, binary, or auto (default)
-I Override the size of each slab page. Adjusts max item size
(default: 1mb, min: 1k, max: 128m)
-o Comma separated list of extended or experimental options
- (EXPERIMENTAL) maxconns_fast: immediately close new
connections if over maxconns limit
- hashpower: An integer multiplier for how large the hash
table should be. Can be grown at runtime if not big enough.
Set this based on "STAT hash_power_level" before a
restart.

 

 

memcached -d -m 256 -u root -l 10.1.106.20 -p 11211 -c 1024 -P /tmp/memcached.pid

 

-d选项是启动一个守护进程,

 

-m是分配给Memcache使用的内存数量,单位是MB,这里是200MB
-u是运行Memcache的用户,如果当前为 root 的话,需要使用此参数指定用户。
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.1.91
-p是设置Memcache监听的端口,我这里设置了12301,最好是1024以上的端口
-c选项是最大运行的并发连接数,默认是1024,这里设置了256
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
停止Memcache进程:直接kill 进程号 或者 kill `cat /tmp/memcached.pid`

查看启动的memcache服务:netstat -lp | grep memcached 或者 ps -ef | grep memcached 

分享到:
评论
1 楼 a286268373 2015-08-27  
楼主威武,正好解决了我的问题。

相关推荐

    Memcache win版 服务器和.net驱动

    Memcache是一款高性能的分布式内存缓存系统,它最初是为了解决Web应用程序的数据库负载问题而设计的。通过将数据存储在内存中,Memcache能够快速地提供数据,减少对数据库的访问,从而提高应用性能。在Windows平台上...

    PHP memcache 多版本拓展

    - **错误处理**: 在使用Memcache时,应检查每次操作的返回值,及时处理可能出现的连接问题或数据存储异常。 通过以上介绍,我们可以了解到PHP Memcache多版本拓展库在PHP7及更高版本中的应用和配置方法。它不仅提供...

    Memcache 1.2.6 for Windows

    5. **错误处理**:当Memcache服务器出现问题时,应用应有合适的错误处理机制,如重试、降级或切换到其他数据源。 总的来说,Memcache 1.2.6 for Windows为Windows环境提供了一个强大而可靠的缓存解决方案,通过合理...

    MemCache Client端类库

    1. **连接管理**:建立与MemCache服务器的TCP连接,支持多个服务器的集群配置,以实现负载均衡和故障恢复。 2. **命令发送与接收**:实现MemCache协议,如`GET`、`SET`、`ADD`、`DELETE`等命令的编码和解码,以及...

    PHP7.x 8.0 memcache dll php_memcache.dll

    5. **兼容性问题**:由于`php_memcache.dll`扩展可能不兼容最新的PHP版本,因此在升级PHP时,需要确保找到与新版本兼容的memcache扩展。 6. **替代方案**:随着PHP的发展,`Memcached`扩展(注意字母d的区别)逐渐...

    memcache监控工具

    - **错误率**:记录失败的请求,帮助识别和解决问题。 5. **监控策略** - **阈值设定**:根据业务需求设定监控指标的警告阈值,超过阈值时触发告警。 - **定期报告**:定时生成监控报告,以便长期分析系统性能...

    memcacheclient-2.0

    `memcacheclient-2.0`的这次更新主要集中在性能优化和错误修复上,确保了它能够在不同的操作系统环境下正常运行。作为C++实现的Memcached客户端,它充分利用了C++的特性,如模板、STL容器和异常处理,来构建一个轻量...

    memcache_php使用测试

    - **memcache.max_failover_attempts**: 定义了在故障转移时尝试连接服务器的最大次数,与memcache.allow_failover配合使用,确保系统在面对单一服务器故障时仍能保持服务连续性。 - **memcache.chunk_size**: 数据...

    memcache服务加扩展php5.6的dll

    7. **故障排查**:如果在安装或使用过程中遇到问题,检查错误日志,确保PHP和Memcache服务都已正确启动,并且PHP能够找到并加载`php_memcache.dll`扩展。可能需要确认系统环境变量`PATH`是否包含Memcached的可执行...

    Memcache win32

    windows memcache 安装服务,php_memcache.dll...-M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是1024 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags默认是48 -h 显示帮助

    windows xp 下memcache拓展的安装

    - 确保PHP和Memcache的版本兼容,不兼容可能导致问题。 - 检查防火墙设置,确保11211端口对本地连接开放。 - 如果遇到“找不到指定的模块”的错误,可能是因为缺少依赖,如VC++运行库。 通过以上步骤,你可以在...

    php5.4 memcache 扩展包

    1. **`Memcache::connect()` 和 `Memcache::pconnect()`**:这两个函数用于连接到 Memcached 服务器。`connect()` 每次请求都会建立新的连接,而 `pconnect()` 使用持久连接,减少了网络开销。 2. **`Memcache::set...

    php数据库连接配合memcache_.docx

    标题中的“php数据库连接配合memcache”指的是在PHP编程中,使用MySQL数据库连接与Memcache缓存技术相结合,以提高应用程序的性能。Memcache是一种分布式内存缓存系统,用于存储和检索数据,以减少对数据库的频繁...

    php_memcache-5.2 5.3 5.4

    - 通过PHP错误日志定位问题,如连接失败、超时等。 - 注意内存泄漏问题,及时释放不再使用的键值。 5. **安全性考虑**: - 虽然Memcached是内存存储,但也要注意数据的加密,尤其是在传输过程中。 - 对敏感数据...

    windows php memcache 扩展

    使用PHP连接Memcache** 在PHP代码中,你需要引入`Memcache`类来与Memcache服务器通信。以下是一个简单的示例: ```php $memcache = new Memcache; $memcache-&gt;connect('localhost', 11211); // 默认端口是11211 $...

    php_memcache.dll 5.4.12

    是PHP的一个扩展,用于连接和操作Memcache服务器。这个扩展专为PHP 5.4.12版本设计,确保与该版本的PHP完全兼容。其他PHP版本的用户需要注意,虽然理论上可能兼容,但实际使用前需要进行测试,因为不同版本的PHP可能...

    memcache使用

    - `-M`:内存耗尽时返回错误,而不是删除条目。 - `-c`:最大并发连接数,默认为1024。 - `-f`:块大小增长因子,默认为1.25。 - `-n`:最小分配空间,包括key、value和flags,默认为48字节。 - `-h`:显示帮助信息...

    memcache3.08-php-源码

    3. 配置PHP:在PHP的配置文件(如php.ini)中添加Memcache扩展,并设置相关配置选项,如默认连接超时时间、服务器地址等。 4. 测试运行:使用`php -m`检查Memcache扩展是否成功加载,然后编写PHP脚本进行功能测试。 ...

    5.4.3扩展memcache

    1. **连接与管理**:扩展提供了`memcache_connect()`、`memcache_pconnect()`等函数,用于连接到memcached服务器集群,并管理这些连接。 2. **数据存储**:使用`memcache_set()`、`memcache_add()`等函数将数据以...

    php_memcache扩展大全(所有版本)

    - `memcache_connect()`:建立到Memcached服务器的连接。 - `memcache_set()`:将数据存储到缓存中,指定键值对和过期时间。 - `memcache_get()`:通过键值从缓存中获取数据。 - `memcache_replace()`:如果键...

Global site tag (gtag.js) - Google Analytics