windows操作系统中安装、启动和卸载memcached

今天总结一下如何在Windows操作系统中安装、启动和卸载memcached:
下载地址: http://download.csdn.net/download/wangshuxuncom/8249501

 或者(https://files.cnblogs.com/files/chy123/memcached_win64%28jb51.net%29.rar

2、解压获取到的压缩文件,将得到一个名为“memcached-1.2.6-win32-bin”的文件夹,将该文件夹拷贝到自认为适当的位置(比如拷贝到C盘根目录);
3、通过cmd命令进入Windows的命令行模式,输入如下命令“cd /d C:\memcached-1.2.6-win32-bin”,敲击回车键,得到下图:

4、下面依次介绍memcached的安装、启动和卸载:
a、在第3步中输入“memcached.exe -d install”,然后点击回车键,得到下图:

b、上述命令执行过后在“服务”列表中会看到memcached已列入其中:

a、在上图中我们看到新安装的memcached并没有处于启动状态,如何启动它呢?在命令行窗口中执行“memcached.exe -d start”,得到下图:

b、执行过上面的命令后,刷新“服务”列表,即可看到memcached已经启动:

 

或者启动任务管理器查看进程:

a、在卸载memcached以前,要先停止其启动,否则会出现如下问题:

b、通过在命令行窗口执行“memcached.exe -d stop”即可将memcached置于停用状态,如下图:

c、在命令行窗口执行“memcached.exe -d uninstall”即可将memcached卸载下来。

d、安装完成后,下面就进入测试的环节

输入命令行telnet 127.0.0.1 11211进行测试:如果安装成功的话会跳出一个dos页面,开始什么都不显示,回车后输入命令  stats  查看统计信息,如下图,说明服务器运作正常。(备注:win7中可能会出现“telnet’不是内部或外部命令”的错误,这是因为系统中默认没有安装telnet的缘故,可在“控制面板”->“程序”->“程序和功能”->“打开或关闭Windows功能”中打开“Telnet客户端”。)

连接上端口后输入 stats命令,即可得到描述Memcached服务器运行情况的参数。 
STAT pid 4356 服务器进程ID 
STAT uptime 56625 服务器运行时间,单位秒 
STAT time 1225249079 服务器当前的UNIX时间 
STAT version 1.1.0 服务器的版本号 
STAT pointer_size 64 
STAT rusage_user 151.845489 该进程累计的用户时间(秒:微妙) 
STAT rusage_system 121.667603 该进程累计的系统时间(秒:微妙) 
STAT ibuffer_size 4096 
STAT curr_connections 13 连接数量 
STAT total_connections 54136 服务器运行以来接受的连接总数 
STAT connection_structures 318 服务器分配的连接结构的数量 
STAT cmd_get 100595 取回请求总数 
STAT cmd_set 6510 存储请求总数 
STAT get_hits 96543 请求成功的总次数 
STAT get_misses 4052 请求失败的总次数 
STAT bytes_read 4427679 服务器从网络读取到的总字节数 
STAT bytes_written 6585596 服务器向网络发送的总字节数 

e、windows php5.4.3添加memcache扩展

memcache与memcached的区别:Memcached是一个内存缓存系统,而Memcache是php的一个扩展,是php用于操作和管理Memcached的工具。如果安装了Memcached但没有安装Memcache,等于只是安装了缓存服务,但是php无法操控Memcached,但是可以使用命令行来操控Memcached;如果安装了Memcache却没安装Memcached,则无法使用。只有同时安装了Memcached和Memcache,才能在PHP中使用Memcached。

php5.4.3添加memcache扩展,必须是指定对应的版本扩展,不然不生效。
首先下载php5.4对应版本的php_memcache.dll扩展。
下载地址:http://download.csdn.net/detail/wwenwei2011/5102338

https://pecl.php.net/package/memcache

使用phpinfo()函数查看PHP的版本信息,是否线程安全,以及编译版本,这会决定扩展文件版本,以及php.ini
的地址,以及扩展存放地址,如果是wamp。一定要注意版本位数不然容易出现Fatal error: Class 'Memcache' not found

解压缩后,将php_memcache.dll拷贝至php的ext目录下
修改php.ini,(PS:此php.ini文件是在Apache目录)在该文件中加入:
extension=php_memcache.dll

重启Apache后,使用phpinfo查看扩展是否成功安装

参考文档:http://www.tuicool.com/articles/nyIjQvZ

http://www.jb51.net/article/63601.htm
https://pecl.php.net/package/memcache

测试php链接:memcache扩展包中自带的example.php

 

管理工具:

1:C# 实现 MemCache 监控管理工具  参考网址:http://www.cnblogs.com/xffy1028/archive/2013/02/01/2861706.html  这个客户端在windows下面用还行

2:web页面

  i:参考网址:http://www.junopen.com/memadmin/

       ii:参考网址:http://www.treesoft.cn/dms.html

       iii:memcache扩展包中自带的memcache.php 参考网址:http://www.cnblogs.com/zhuque/archive/2012/11/05/2763346.html

 

 

memcached安全验证:参考文档:http://www.jb51.net/article/27195.htm

Memcache服务器端都是直接通过客户端连接后直接操作,没有任何的验证过程,这样如果服务器是直接暴露在互联网上的话是比较危险,轻则数据泄露被其他无关人员查看,重则服务器被入侵,因为Mecache是以root权限运行的,况且里面可能存在一些我们未知的bug或者是缓冲区溢出的情况,这些都是我们未知的,所以危险性是可以预见的。为了安全起见,我做两点建议,能够稍微的防止黑客的入侵或者数据的泄露。 

内网访问 
最好把两台服务器之间的访问是内网形态的,一般是Web服务器跟Memcache服务器之间。普遍的服务器都是有两块网卡,一块指向互联网,一块指向内网,那么就让Web服务器通过内网的网卡来访问Memcache服务器,我们Memcache的服务器上启动的时候就监听内网的IP地址和端口,内网间的访问能够有效阻止其他非法的访问。 
# memcached -d -m 1024 -u root -l 192.168.0.200 -p 11211 -c 1024 -P /tmp/memcached.pid 
Memcache服务器端设置监听通过内网的192.168.0.200的ip的11211端口,占用1024MB内存,并且允许最大1024个并发连接 

设置防火墙 
防火墙是简单有效的方式,如果却是两台服务器都是挂在网的,并且需要通过外网IP来访问Memcache的话,那么可以考虑使用防火墙或者代理程序来过滤非法访问。 
一般我们在Linux下可以使用iptables或者FreeBSD下的ipfw来指定一些规则防止一些非法的访问,比如我们可以设置只允许我们的Web服务器来访问我们Memcache服务器,同时阻止其他的访问。 
# iptables -F 
# iptables -P INPUT DROP 
# iptables -A INPUT -p tcp -s 192.168.0.2 –dport 11211 -j ACCEPT 
# iptables -A INPUT -p udp -s 192.168.0.2 –dport 11211 -j ACCEPT 
上面的iptables规则就是只允许192.168.0.2这台Web服务器对Memcache服务器的访问,能够有效的阻止一些非法访问,相应的也可以增加一些其他的规则来加强安全性,这个可以根据自己的需要来做 

 

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Memcached一些特性和限制 参考文档:https://www.oschina.net/question/234345_42556
• 在 Memcached 中可以保存的item数据量是没有限制的,只有内存足够 
• Memcached单进程最大使用内存为2G,要使用更多内存,可以分多个端口开启多个Memcached进程 
• 最大30天的数据过期时间, 设置为永久的也会在这个时间过期,常量REALTIME_MAXDELTA 
60*60*24*30 控制 
• 最大键长为250字节,大于该长度无法存储,常量KEY_MAX_LENGTH 250 控制 
• 单个item最大数据是1MB,超过1MB数据不予存储,常量POWER_BLOCK 1048576 进行控制, 
它是默认的slab大小 
• 最大同时连接数是200,通过 conn_init()中的freetotal 进行控制,最大软连接数是1024,通过 
settings.maxconns=1024 进行控制 
• 跟空间占用相关的参数:settings.factor=1.25, settings.chunk_size=48, 影响slab的数据占用和步进方式
 
查看Memcached内部工作状态 
访问Memcached:telnet 主机名 端口号 
查看总状态:stats 
查看某项状态:stats curr_connections 
禁止LRU 
有些情况下LRU机制反倒会造成麻烦。memcached启动时通过“-M”参数可以禁止LRU, 
如下所示: 
$ memcached -M -m 1024 
启动时必须注意的是,小写的“-m”选项是用来指定最大内存大小的。不指定具体数值则 
使用默认值64MB。 
指定“-M”参数启动后,内存用尽时memcached会返回错误。话说回来,memcached毕 
竟不是存储器,而是缓存,所以推荐使用LRU。
 
Memcached使用线程模式工作 
在安装的时候必须打开:./configure --enable-threads 
安装完之后,启动的时候看看帮助信息有没有这条: 
-t <num> number of threads to use, default 4 
如果存在该选项,说明已经支持了线程,就可以在启动的时候使用 -t 选项来启动多线程 
然后启动的时候必须加上你需要支持的线程数量: 
/usr/local/memcache/bin/memcached -t 1024
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

posted @ 2018-03-20 17:15  奔跑的飞猪遁世不离俗  阅读(1757)  评论(0编辑  收藏  举报