科技常识:windows环境下memcache配置方法 详细篇

2021-04-07 22:06:11
导读 今天小编跟大家讲解下有关科技常识:windows环境下memcache配置方法 详细篇,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关

今天小编跟大家讲解下有关科技常识:windows环境下memcache配置方法 详细篇,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关科技常识:windows环境下memcache配置方法 详细篇的相关资料,希望小伙伴会喜欢也能够帮助大家。

将memcache服务器安装包解压到C:\memcached文件夹后,使用cmd命令窗口安装。 1>开始>运行:CMD(确定) 2>cd C:\memcached(回车) 3>memcached -d install(回车 这步执行安装) 4>memcached -d start(回车 这步执行启动memcache服务器,默认分配64M内存,使用11211端口) 此时memcache服务器已经可以正常使用了。 在服务端运行: # ./memcached -d -m 2048 -l 10.0.0.40 -p 11211 这将会启动一个占用2G内存的进程,并打开11211端口用于接收请求。由于32位系统只能处理4G内存的寻址,所以在大于4G内存使用PAE的32位服务器上可以运行2-3个进程,并在不同端口进行监听。 又如:memcached -d -m 10 -u root -l 192.168.105.73 -p 12000 -c 256 -P /tmp/memcached.pid -d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, -u是运行Memcache的用户,我这里是root, -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.105.73 , -p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口, -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定, -P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid memcache服务器安全: Memcache服务器端都是直接通过客户端连接后直接操作,没有任何的验证过程,这样如果服务器是直接暴露在互联网上的话是比较危险,轻则数据泄露被其他无关人员查看,重则服务器被入侵,况且里面可能存在一些我们未知的bug或者是缓冲区溢出的情况,这些都是我们未知的,所以危险性是可以预见的。为了安全起见,做两点建议,能够稍微的防止黑客的入侵或者数据的泄露。 现在就关于修改memcache服务器配置的问题说明如下: 1>用内网ip的方式提供web应用服务器调用,不允许直接通过外网调用,如将memcache服务器放在192.168.1.55的服务器上 2>修改端口,如改为11200 3>分配内存,如分配1024M(1G内存) 方法如下: 1>开始>运行:CMD(确定) 2>cd C:\memcached(回车) 3>memcached -m 1024 -p 11200 -l 192.168.1.55(回车) 注意,此时命令行不会回到C:\memcached>状态,并且实际上memcache服务器悄悄变为stop状态了。此窗口不可以关闭。新开一个cmd窗口 4>开始>运行:CMD(确定) 5>cd C:\memcached(回车) 6>memcached -d start(回车)可以关闭此cmd窗口。 此时可以使用新配置的memcache服务器了。 上述方法虽然解决了修改默认配置的问题,但是始终会有一个cmd窗口不可以关闭,否则就回到11211端口的默认配置。 更好的解决方案是通过修改服务的注册表配置: 1>开始>运行:regedit(回车) 2>在注册表中找到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server 3>默认的ImagePath键的值是:"c:\memcached\memcached.exe"-d runservice,改为:"c:\memcached\memcached.exe"-d runservice -m 512 -p 11200 -l 192.168.1.55(确定,关闭注册表) 4>我的电脑(右键)>管理>服务 找到memcache的服务,重新启动一次即可生效。 此时,同网段内的电脑仍然可以利用这台memcache服务器,我们限定指定的web应用服务器才能够使用,通过防火墙的方式。如只允许192.168.1.2这台Web服务器对Memcache服务器的访问,能够有效的阻止一些非法访问,相应的也可以增加一些其他的规则来加强安全性,这个可以根据自己的需要来做。 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 Cdport 11211 -j ACCEPT # iptables -A INPUT -p udp -s 192.168.0.2 Cdport 11211 -j ACCEPT 上面的iptables规则就是只允许192.168.0.2这台Web服务器对Memcache服务器的访问,能够有效的阻止一些非法访问,相应的也可以增加一些其他的规则来加强安全性,这个可以根据自己的需要来做 很多时候需要监控服务器上的Memcached运行情况,比如缓存的查询次数,命中率之类的。但找到的 那个memcached-tool是linux下用perl写的,我也没试过windows能不能用。后来发现个简单的办法可以做到,就是使用Telnet。 1、windows系统连接memcached端口 cmd命令行中键入telnet 192.168.1.1 11211 11211是memcached绑定的端口号。 2、连接上端口后输入 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 服务器向网络发送的总字节数 1>、uptime 是memcached运行的秒数, 2>、cmd_get是查询缓存的次数。 3>、这两个数据相除一下就能得到平均每秒请求缓存的次数――最近niupu的流量很低,所以平均也就一秒请求一次多, 这么点大的压力,用文件系统缓存一样没问题,根本不会体现出使用memcached的优越。 4>、下面的cmd_set 就是设置key=>value的次数。整个memcached是个大hash,用cmd_get没有找到的内 容,就会调用一下cmd_set写进缓存里。 5>、紧跟着是get_hits,就是缓存命中的次数。缓存命中率 = get_hits/cmd_get * 100%。 6>、下面的get_misses的数字加上get_hits应该等于cmd_get。 7>、而total_itemscurr_items表示现在在缓存中的键值对个数. 8>、在图上total_items == cmd_set == get_misses,不过当可用最大内存用光时,memcached就会删掉一些内容,上面的等式就不成立了

来源:爱蒂网

免责声明:本文由用户上传,如有侵权请联系删除!

猜你喜欢

最新文章