windows mysql memcached_在Windows中安装Memcached

Memcached是一个高并发的内存键值对缓存系统,它的主要作用是将数据库查询结果,内容,以及其它一些耗时的计算结果缓存到系统内存中,从而加速Web应用程序的响应速度。

Memcached最开始是作为Linux应用程序被安装在Linux服务器上来使用的,不过自从开源之后,它又被重新编译以适用于Windows环境。Jellycan和Northscale两个站点都提供了Windows的二进制可执行文件下载,下面是下载的地址:

在1.4.5版本之前,memcached可以被安装成一个服务,但之后的版本中该功能被移除了。因此memcached的安装可以分为两类,第一类是1.4.5之前的版本,另一类是1.4.5之后的版本。

安装memcached < 1.4.5:

1. 将下载的文件解压到任意目录。

2. 1.4.5之前版本的memcached会被安装成一个服务,以administrator打开控制台,运行下面的命令:

c:\memcached\memcached.exe -d install

* 注意将路径c:\memcached\memcached.exe替换成你本地的安装路径。

3. 然后使用下面的命令启动或停止memcached服务:

c:\memcached\memcached.exe -d start

c:\memcached\memcached.exe-d stop

4. 通过注册表键值来修改memcached的配置项。在运行中输入regedit.exe,然后导航到"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached"。修改其中的键值。例如你想增加memcached所使用的最大内存限制,可以修改ImagePath的值:

"c:\memcached\memcached.exe" -d runservice -m 512

* 除了参数'-m 512'之外,你还可以使用其它的参数。通过“c:\memcached\memcached.exe -h”可以查看所有能使用的参数。

5. 如果要卸载memcached服务,可以使用下面的命令:

c:\memcached\memcached.exe -d uninstall

安装memcached >= 1.4.5

1. 将下载的文件解压到任意目录。

2. 1.4.5之后版本的memcached不能作为Windows服务来运行,必须使用Windows计划任务来运行它。要将memcached配置成当Windows启动时自动运行,在命令行运行下面的命令:

schtasks /create /sc onstart /tn memcached /tr "'c:\memcached\memcached.exe' -m 512"

* 注意将路径c:\memcached\memcached.exe替换成你本地的安装路径。

** 除了参数'-m 512'之外,你还可以使用其它的参数。通过“c:\memcached\memcached.exe -h”可以查看所有能使用的参数。

3. 通过下面的命令将memcached从Windows计划任务中移除:

schtasks /delete /tn memcached

在PHP中使用memcached

要在PHP中使用memcached,首先需要安装memcache扩展包:

1. 查看你本地的PHP扩展包目录里是否有php_memcache.dll这个文件,如果没有,从https://pecl.php.net/package/memcache下载(选择windows dll文件),然后复制到PHP扩展包目录里。

2. 在php.ini中添加下面的代码以启用memcache扩展包:

extension=php_memcache.dll

3. 创建下面的php示例代码进行测试:

<?php $memcache = newMemcache;$memcache->connect('localhost', 11211) or die ("Could not connect");$version = $memcache->getVersion();echo "Server's version: ".$version."
\n";$tmp_object = newstdClass;$tmp_object->str_attr = 'test';$tmp_object->int_attr = 123;$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");echo "Store data in the cache (data will expire in 10 seconds)
\n";$get_result = $memcache->get('key');echo "Data from the cache:
\n";var_dump($get_result);?>

在Python中使用memcached

要在Python中使用memcached,首先需要安装memcached客户端:

1. 执行下面的命令进行memcached客户端的安装。第一个适用于Python 2.x,第二个适用于Python 3.x。

pip install python-memcached

pipinstall python3-memcached

2. 创建下面的python示例代码进行测试:

importmemcache

mc= memcache.Client(['127.0.0.1:11211'], debug=0)

mc.set("some_key", "Some value")

value= mc.get("some_key")

mc.set("another_key", 3)

mc.delete("another_key")

mc.set("key", "1") #note that the key used for incr/decr must be a string.

mc.incr("key")

mc.decr("key")

在Node.js中使用memcached

在Node.js中可以通过memcached包来使用memcache,Github的地址https://github.com/3rd-Eden/memcached。下面是一段示例代码:

var Memcached = require( 'memcached');//connect to our memcached server on host 10.211.55.5, port 11211

var memcached = new Memcached( "10.211.55.5:11211");

memcached.set("hello", 1, 10000, function( err, result ){if( err ) console.error( err );

console.dir( result );

memcached.end();//as we are 100% certain we are not going to use the connection again, we are going to end it

});

memcached.get("hello", function( err, result ){if( err ) console.error( err );

console.dir( result );

memcached.end();//as we are 100% certain we are not going to use the connection again, we are going to end it

});

更详细的使用方法可以参考Github上的说明。

Memcached的数据统计

要查看memcached的数据统计,可以通过telnet连接到memcached:

telnet 127.0.0.1 11211

* ip地址后面的数字为memcached运行的端口号

** 在Windows 10中telnet组件默认并没有添加,可通过Control Panel > Programs and Features > Turn Windows features on or off来添加。

7a59937c704b3d85f0b5f59918a3f883.png

然后使用stats来查看统计信息。下表列出了stats统计结果中各数据项的含义:

NameTypeMeaning

pid

32u

Process id of this server process

uptime

32u

Number of secs since the server started

time

32u

current UNIX time according to the server

version

string

Version string of this server

pointer_size

32

Default size of pointers on the host OS (generally 32 or 64)

rusage_user

32u.32u

Accumulated user time for this process (seconds:microseconds)

rusage_system

32u.32u

Accumulated system time for this process (seconds:microseconds)

curr_items

32u

Current number of items stored

total_items

32u

Total number of items stored since the server started

bytes

64u

Current number of bytes used to store items

curr_connections

32u

Number of open connections

total_connections

32u

Total number of connections opened since the server started running

connection_structures

32u

Number of connection structures allocated by the server

reserved_fds

32u

Number of misc fds used internally

cmd_get

64u

Cumulative number of retrieval reqs

cmd_set

64u

Cumulative number of storage reqs

cmd_flush

64u

Cumulative number of flush reqs

cmd_touch

64u

Cumulative number of touch reqs

get_hits

64u

Number of keys that have been requested and found present

get_misses

64u

Number of items that have been requested and not found

delete_misses

64u

Number of deletions reqs for missing keys

delete_hits

64u

Number of deletion reqs resulting in an item being removed.

incr_misses

64u

Number of incr reqs against missing keys.

incr_hits

64u

Number of successful incr reqs.

decr_misses

64u

Number of decr reqs against missing keys.

decr_hits

64u

Number of successful decr reqs.

cas_misses

64u

Number of CAS reqs against missing keys.

cas_hits

64u

Number of successful CAS reqs.

cas_badval

64u

Number of CAS reqs for which a key was found, but the CAS value did not match.

touch_hits

64u

Numer of keys that have been touched with a new expiration time

touch_misses

64u

Numer of items that have been touched and not found

auth_cmds

64u

Number of authentication commands handled, success or failure.

auth_errors

64u

Number of failed authentications.

evictions

64u

Number of valid items removed from cache to free memory for new items

reclaimed

64u

Number of times an entry was stored using memory from an expired entry

bytes_read

64u

Total number of bytes read by this server from network

bytes_written

64u

Total number of bytes sent by this server to network

limit_maxbytes

32u

Number of bytes this server is allowed to use for storage.

threads

32u

Number of worker threads requested. (see doc/threads.txt)

conn_yields

64u

Number of times any connection yielded to another due to hitting the -R limit.

hash_power_level

32u

Current size multiplier for hash table

hash_bytes

64u

Bytes currently used by hash tables

hash_is_expanding

bool

Indicates if the hash table is being grown to a new size

expired_unfetched

64u

Items pulled from LRU that were never touched by get/incr/append/etc before expiring

evicted_unfetched

64u

Items evicted from LRU that were never touched by get/incr/append/etc.

slab_reassign_running

bool

If a slab page is being moved

slabs_moved

64u

Total slab pages moved

crawler_reclaimed

64u

Total items freed by LRU Crawler

lrutail_reflocked

64u

Times LRU tail was found with active ref. Items moved to head to avoid OOM errors.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值