Windows安装配置memcache和memcached及各指令教程

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已经在上面可,如果没有启动,则手动启动一下。

Windows安装配置memcache和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监控每一个动作

Windows安装配置memcache和memcached及各指令教程

2、打开新的cmd窗口,输入telnet 127.0.0.1 11211命令、然后按下 Ctrl+] 键进入telnet框,输入set localecho进行回显,然后再回车进入telnet控制台

Windows安装配置memcache和memcached及各指令教程

3、输入memcached指令测试,telnet的每一个动作,在第一个框中都会被监听所打印记录

Windows安装配置memcache和memcached及各指令教程

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就说明安装成功了。

Windows安装配置memcache和memcached及各指令教程

测试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及各指令教程

点  赞 (1) 打  赏
分享到: