Memcached是一款开源式的分布式缓存系统,适用于Linux系统二进制安装包,windows 64位和32位操作系统exe执行程序。Memcached 是性能的数据存储缓存工具,对于数据库庞大的服务器来说,使用Memcached 有效地减轻服务器的负担,提高服务的运行性能。
memcached是一套分布式的快取系统,当初是Danga Interactive为了LiveJournal所发展的,但目前被许多软件(如MediaWiki)所使用。这是一套开放源代码软件,以BSD license授权释出。
memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。最初是为了加速LiveJournal访问速度而开发的,现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大、访问的集中,就会出现RDBMS的负担加 重、数据库响应恶化、网站显示延迟等重大影响。
这时就该memcached大显身手了。memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
Memcached 的守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。但是它并不提供冗余(例如,复制其hashmap条目);当某个服务器S停止运行或崩溃了,所有存放在S上的键/值对都将丢失。
memcached for Win32
Windows下的Memcache安装:
1、解压到指定目录,如:D:\website\memcached1.4.13。
2、用cmd打开命令窗口,转到解压的目录,输入 “memcached.exe -d install”。
注意:安装时候出现了如下“failed to install service or service already installed”错误,请使用管理员身份尝试安装
Microsoft Windows [版本 10.0.14393] (c) 2016 Microsoft Corporation。保留所有权利。 C:\Users\Administrator>D:\website\memcached1.4.13\memcached.exe -d install failed to install service or service already installed C:\Users\Administrator>
3、打开控制面板,打开服务,可以看到memcached已经在上面可,如果没有启动,则手动启动一下。
4、使用telnet命令 验证缓存服务器是否可用。输入telnet 172.0.0.1,回车
D:\website\memcached1.4.13>telnet 172.0.0.1
开始什么都不显示,输入命令 stats 查看统计信息,如下代码,说明服务器运作正常。
stats STAT pid 8180 进程id STAT uptime 60 服务器运行时间,单位秒 STAT time 1476598720 服务器当前unix时间 STAT version 1.4.13 版本号 STAT libevent 2.0.21-stable STAT pointer_size 64 STAT curr_connections 10 连接数量 STAT total_connections 11 服务器运行以来接受的连接总数 STAT connection_structures 11 服务器分配的连接结构的数量 STAT reserved_fds 20 STAT cmd_get 0 取回请求总数 STAT cmd_set 0 存储请求总数 STAT cmd_flush 0 STAT cmd_touch 0 STAT get_hits 0 请求成功的总次数,命中率:(查询到的次数/查询总数)*100% STAT get_misses 0 请求失败的总次数 STAT delete_misses 0 STAT delete_hits 0 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT touch_hits 0 STAT touch_misses 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 14 服务器从网络读取到的总字节数 STAT bytes_written 7 服务器向网络发送的总字节数 STAT limit_maxbytes 67108864 分配给memcache的内存大小(字节) STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 当前线程数 STAT conn_yields 0 STAT hash_power_level 16 STAT hash_bytes 524288 STAT hash_is_expanding 0 STAT expired_unfetched 0 STAT evicted_unfetched 0 STAT bytes 0 服务器存储items占用的字节数 STAT curr_items 0 服务器当前存储的items数量 STAT total_items 0 服务器启用以后存储的items总数量 STAT evictions 0 为获取空闲内存而删除的items数(分配给memcached的控件用满后要删除旧的items来得到空间分配给新的items) STAT reclaimed 0 END
退出telnet,使用指令quit即可,例如:
.... STAT reclaimed 0 END quit 遗失对主机的连接。 C:\Users\Administrator>
监控telnet存储状态测试
1、输入命令开启memcached,参数-vv,是显示memcached打印记录,-vvv监控每一个动作
2、打开新的cmd窗口,输入telnet 127.0.0.1 11211命令、然后按下 Ctrl+] 键进入telnet框,输入set localecho进行回显,然后再回车进入telnet控制台
3、输入memcached指令测试,telnet的每一个动作,在第一个框中都会被监听所打印记录
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 显示帮助
特别说明:如果你的网站需要memcached内存大于64m,可以这样启动,memcached在内存快满的时候会根据算法删除不活跃使用的key
D:\website\memcached1.4.13>memcached.exe -m 256m -d start
Memcached指令测试
add 指令
示例:add name 0 60 5
说明:add是指令名,name是key,0是存储标识,60表示60秒后失效(设为0表示永久有效,一般在系统的30天,也可指定失效时间点),5表示存放数据长度
注意:如果一个key已经存在,再放入是失败的
get 指令
示例:get key
说明:获取key的值
set 指令
示例:set key 0 60 5
说明:更新key值,如果key存在就更新,如果key不存在,就添加,此时相当于add指令
delete 指令
语法:delete key【time second】
说明:删除key
replace 指令
示例:replace key 0 60 5
append 指令
示例:append key 0 60 15
说明:拼接key值,比如name的key值为hello,使用append拼接一个123,再去时值就为hello123
注意:key的值理解为32为无符号来+-操作,值在【0-2^23-1】范围内
incr 指令
示例:incr key 2
说明:存放的key应当为数字,才能增加,类似与数据库的自增索引作用
decr 指令
示例:decr key 2
说明:存放的key应当为数字,才能减去,与incr指令相反
flush_all 指令
示例:flush_all ,说明:清空所有key
示例:flush_all 900 , 说明:900秒之后清除所有
说明:清除所有key
stats 指令
示例:stats、stats slabs、stats malloc、stats items、stats detail、stats sizes、stats reset等
说明:查看memcached状态
vesion 指令
示例:version
说明:查看memcached版本
verbosity 指令
示例:verbosity
说明:显示日志级别
quit 指令
示例:quit
说明:退出telnet
php 链接memcached
在windows下需要添加memcached.dll文件,windows下载的dll,未必能够使用,需要寻找对应php的版本,需要考虑3个参数
(判断php的编译器是VC6,VC9,VC11等、判断PHP的版本、判断是线程安全的php还是非线程安全的php)
关于扩展dll,自行下载测试
官方文档:https://secure.php.net/manual/zh/book.memcached.php
PHP membercached 扩展下载地址:http://downloads.php.net/pierre/ 测试了下发现现在不好用了
1、把php_memcache.dll放到php的安装文件里的扩展文件夹中,也就是放在php的ext目录下
2、修改php.ini这个配置文件,加入extension=php_memcache.dll 这一行代码。
3、重启apache,然后用php写一个phpinfo()函数就,如果列表里出现了memcache就说明安装成功了。
测试PHP联接
运行下面的php文件
<?php $d = new memcache(); $d->connect('127.0.0.1','11211'); $d->set('memcache','Hello memache!<br />'); echo $d->get('memcache'); $mem = new Memcache; $mem->connect('127.0.0.1', 11211); $mem->set('key', 'This is a test!', 0, 60); $val = $mem->get('key'); echo $val; ?>
如果有输出以下内容,就表示环境搭建成功
Hello memache! This is a test!
其他资料:
相关文章推荐:http://www.ibloger.net/article/973.html
php7和memcache-dll:https://github.com/nono303/PHP7-memcahe-dll
未经允许请勿转载:程序喵 » Windows安装配置memcache和memcached及各指令教程