关键字:memcached(windows)安装与配置 算法
1. 下载windows版本的Memcached:http://code.jellycan.com/memcached/ windows
2.解压以后放在硬盘的目录下,如:D:\memcached . 而后在运行中输入cmd进入命令行,进入到Memcached.exe 所在的目录,例如:D:\memcached,而后输入: 缓存
Cmd代码 收藏代码 服务器
到memcached根目录 memcached
一、安装 操作系统
memcached.exe –d install 命令行
二、启动 线程
memcached.exe -d start unix
此时memcached已经注册为开机启动服务 指针
完成安装。
经实验使用命令修改端口无效,相应的解决方案是修改注册表:
经过修改注册表来达到这个修改端口的目的。
在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server 下面找到一个 ImagePath 的字符串项,正好是服务的执行路径的字符串,双击该串,在后面加入 -l 192.168.1.135 -m 45 -p 12345 (访问ip为:192.168.1.135 使用45M内存,12345为端口),再启动服务。
如今来试试是否能够链接:
使用方法为“telnet ip 端口号”,登陆后使用“stats”命令
cmd下
telnet 192.168.1.135 12345(注意:这里只能用IP 不能用 localhost 或127.0.0.1)
而后使用:stats命令能够看到memcached的使用状况以下:
STAT uptime 760
STAT time 1311913149
STAT version 1.2.1
STAT pointer_size 32
STAT curr_items 0
STAT total_items 0
STAT bytes 0
STAT curr_connections 4
STAT total_connections 6
STAT connection_structures 5
STAT cmd_get 0
STAT cmd_set 0
STAT get_hits 0
STAT get_misses 0
STAT bytes_read 63
STAT bytes_written 793
STAT limit_maxbytes 10485760
END
三、memcached的基本设置 :
-p 监听的端口
-l 链接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时链接数,默认是1024
-f 块大小增加因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
四、最主要的一点,在windows下安装memcache经过命令行修改参数好像不起什么做用,须要进入注册表修改启动项参数才有用,具体操做以下:进入注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server , 在其中有一个ImagePath 项,值为"d:\memcached\memcached.exe" -d runservice ,在后面加上-l 127.0.0.1 -m 3000 -c 2048 最后ImagePath 项值应该像这样:
注册表值代码 收藏代码
1. d:\memcached\memcached.exe" -d runservice -l 127.0.0.1 -m 3000 -c 2048
d:\memcached\memcached.exe" -d runservice -l 127.0.0.1 -m 3000 -c 2048
五、memcached –d start 启动memcached服务,这样就将memcached的最大内存修改成了3000MB。
对Memcached缓存服务的状态查询,能够先telnet链接上服务:telnet 127.0.0.1 11211 ,而后使用 stats命令查看缓存服务的状态,会返回以下的数据:
time: 1255537291 服务器当前的unix时间戳
total_items: 54 从服务器启动之后存储的items总数量
connection_structures: 19 服务器分配的链接构造数
version: 1.2.6 memcache版本
limit_maxbytes: 67108864 分配给memcache的内存大小(字节)
cmd_get: 1645 get命令(获取)总请求次数
evictions: 0 为获取空闲内存而删除的items数(分配给memcache的空间用满后需
要删除旧的items来获得空间分配给新的items)
total_connections: 19 从服务器启动之后曾经打开过的链接数
bytes: 248723 当前服务器存储items占用的字节数
threads: 1 当前线程数
get_misses: 82 总未命中次数
pointer_size: 32 当前操做系统的指针大小(32位系统通常是32bit)
bytes_read: 490982 总读取字节数(请求字节数)
uptime: 161 服务器已经运行的秒数
curr_connections: 18 当前打开着的链接数
pid: 2816 memcache服务器的进程ID
bytes_written: 16517259 总发送字节数(结果字节数)
get_hits: 1563 总命中次数
cmd_set: 54 set命令(保存)总请求次数
curr_items: 28 服务器当前存储的items数量
关于memcache 的一下疑问:
memcached能接受的key的最大长度是多少?
key 的最大长度是250个字符。须要注意的是,250是memcached服务器端内部的限制,若是您使用的客户端支持”key的前缀”或相似特性,那么 key(前缀+原始key)的最大长度是能够超过250个字符的。咱们推荐使用使用较短的key,由于能够节省内存和带宽。
memcached对item的过时时间有什么限制?
过时时间最大能够达到30天。memcached把传入的过时时间(时间段)解释成时间点后,一旦到了这个时间点,memcached就把item置为失效状态。这是一个简单但obscure的机制。
memcached最大能存储多大的单个item?
1MB。若是你的数据大于1MB,能够考虑在客户端压缩或拆分到多个key中。
为何单个item的大小被限制在1M byte以内?
啊…这是一个你们常常问的问题!
简单的回答:由于内存分配器的算法就是这样的