memcached(windows)安装与配置

标签: memcached windows | 发表时间:2012-11-08 10:02 | 作者:stoneson
出处:http://blog.csdn.net
1. 下载windows版本的Memcached:http://code.jellycan.com/memcached/



2.解压之后放在硬盘的目录下,如:D:\memcached . 然后在运行中输入cmd进入命令行,进入到Memcached.exe 所在的目录,例如:D:\memcached,然后输入:


Cmd代码  收藏代码
到memcached根目录
1、安装
memcached.exe –d install 

2、启动
memcached.exe -d start

此时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




3、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 显示帮助



4、最主要的一点,在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



5、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之内?
啊…这是一个大家经常问的问题!

简单的回答:因为内存分配器的算法就是这样的



windows下memcached安装、使用

http://www.uh80.com/?p=676

Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon)是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。但是它并不提供冗余(例如,复制其hashmap条目);当某个服务器S停止运行或崩溃了,所有存放在S上的键/值对都将丢失。

Memcached官方: http://danga.com/memcached/

关于Memcached的介绍请参考: Memcached深度分析

下载Windows的Server端

下载地址: http://code.jellycan.com/memcached/

安装Memcache Server(也可以不安装直接启动)

1. 下载 memcached的windows稳定版,解压放某个盘下面,比如在c:\memcached
2. 在CMD下输入 “c:\memcached\memcached.exe -d install” 安装.
3. 再输入:”c:\memcached\memcached.exe -d start” 启动。NOTE:以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。

如果下载的是二进制的版本,直接运行就可以了,可以加上参数来加以设置。
常用设置:
-p<num>         监听的端口
-l<ip_addr>     连接的IP地址, 默认是本机
-dstart         启动memcached服务
-drestart       重起memcached服务
-d stop|shutdown  关闭正在运行的memcached服务
-dinstall       安装memcached服务
-duninstall     卸载memcached服务
-u<username>    以<username>的身份运行(仅在以root运行的时候有效)
-m<num>         最大内存使用,单位MB。默认64MB
-M               内存耗尽时返回错误,而不是删除项
-c<num>         最大同时连接数,默认是1024
-f<factor>      块大小增长因子,默认是1.25
-n<bytes>       最小分配空间,key+value+flags默认是48
-h               显示帮助

然后就可以用php的memcached客户端来试一下了。

Php代码与memcached的交互和与mysql的交互原理是一样的,需要安装一个服务器端的memcached,现有的交互处理过程已经封装成了一个php的扩展了;需要在php.ini中,将这个扩展加进去。

Php memcached官方手册地址: http://cn2.php.net/manual/en/memcached.get.php

php扩展库pecl下载地址:

http://museum.php.net/php5/

配置:

1.    下载pecl模块包(地址如上),解压后将php_memache.dll放到php目录的ext子目录下,为了使得能正常使用,最好下载和php版本一致的模块包。

2.    在php.ini文件中导入’extension=php_memcache.dll’

然后重启apache,估计就可以了(可以在phpinfo.php 中,看看是否有memcached模块),当然了,我们可以写一个实验一下

 $memcache_obj = new Memcache;

$memcache_obj->connect(‘localhost’, 11211); 

$memcache_obj->set(‘var_key’, ’Thisis a memcachedtest!’,MEMCACHE_COMPRESSED, 50);

echo $memcache_obj->get(‘var_key’);

 

windows下memcached参数修改

http://yrq205.blog.163.com/blog/static/4767214020117491029324/

查看memcached运行参数:

首先登录到服务器,然后在cmd命令行中键入

telnet 127.0.0.1 11211

其中127.0.0.1是服务器的地址(这里是本机) ,11211是memcached绑定的端口号。

 

启动该服务后,memcached服务默认占用的端口是11211,占用的最大内存默认是64M。

在修改这2个配置选项就碰到了一些问题,网上搜索了很多资料,都说使用下面的命令启动服务就可以:

c:\memcached\memcached.exe -p12345 -m 1024 -dstart  ,  -p 表示要修改的端口,-m表示占用的最大内存(单位为M)。

但是无论怎么调用这个命令,发现端口一直还是11211。

打开windows服务控制面板一看,发现memcached.exe 默认安装的服务器启动参数中根本没写-p-m的参数,只有1个 -d runservice参数。

所以不管用什么命令启动服务都是没用的,于是就想到直接修改windows服务的启动参数,操作如下,打开注册表,找到:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcachedServer

其中的ImagePath项的值为:"c:\memcached\memcached.exe" -d runservice

改成:"c:\memcached\memcached.exe" -p 12345 -m128 -d runservice

保存后重新启动memcached服务,然后在命令行中输入netstat -n -a 看看现在端口是不是改啦


作者:stoneson 发表于2012-11-8 10:02:01 原文链接
阅读:3 评论:0 查看评论

相关 [memcached windows] 推荐:

memcached(windows)安装与配置

- - CSDN博客推荐文章
下载windows版本的Memcached:http://code.jellycan.com/memcached/. 2.解压之后放在硬盘的目录下,如:D:\memcached. 然后在运行中输入cmd进入命令行,进入到Memcached.exe 所在的目录,例如:D:\memcached,然后输入:.

memcached+magent实现memcached集群

- - 编程语言 - ITeye博客
首先说明下memcached存在如下问题.   本身没有内置分布式功能,无法实现使用多台Memcache服务器来存储不同的数据,最大程度的使用相同的资源;无法同步数据,容易造成单点故障. (memagent代理实现集群).       在 Memcached中可以保存的item数据量是没有限制的,只要内存足够.

MemCached详解

- - CSDN博客推荐文章
首先,我们来了解一下MemCached与MemCache之间的区别:. Memcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统. 用于加速动态web应用程序,减轻数据库负载. 它可以应对任意多个连接,使用非阻塞的网络IO. 由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这 些HashTable.

Memcached调优

- - 四火的唠叨
文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》. 项目中有一个对实时响应性比较高的服务,引入了Memcached以减少延迟和减少数据库压力. 但是期间遇到了一些问题,这里记录一些调优细节. 最开始我使用的是 Memcached Java Client,但是最后放弃了,放弃原因包括:.

memcached协议

- - 开源软件 - ITeye博客
旧版: http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt. 新版: https://github.com/memcached/memcached/blob/master/doc/protocol.txt.

Java使用memcached

- - 互联网 - ITeye博客
首先到 http://danga.com/memcached下载memcached的windows版本和java客户端jar包,目前最新版本是memcached-1.2.1-win32.zip和java_memcached-release_1.6.zip,分别解压后即可. 然后是安装运行memcached服务器,我们将memcached-1.2.1-win32.zip解压后,进入其目录,然后运行如下命令:c:>;memcached.exe -d install
c:>memcached.exe -l 127.0.0.1 -m 32 -d start.

Spring+memcached整合

- - 行业应用 - ITeye博客
1)  下载memcached服务端memcached-1.2.6-win32-bin.zip,地址:http:. 2)  下载java版客户端 java_memcached-release_2.6.1.zip. 3)  解压缩memcached-1.2.6-win32-bin.zip到指定目录,例如:D:\memcached-1.2.6-win32 ,.

转 redis vs memcached

- - 数据库 - ITeye博客
传统MySQL+ Memcached架构遇到的问题.   实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题:.   1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间.

Memcached安全性

- - xiaobaoqiu Blog
1.Memcached -l参数. 1.Memcached -l参数. 最近整理了组内使用的Memcached. 发现很多问题,其中一个问题就是开发机器测试机器可以直连线上的Memcached. 这也是memcached公认的问题:memcached 是一种很简单、有效的协议,但也有其缺点,就是 memcached 自身没有 ACL 控制(或者相当弱).

Memcached的LRU算法

- Eric - 平凡的世界
最近计划对Memcached做一些尝试性的改造,主要是针对Memcached在处理过期数据的时候进行改造,以实现在一个缓存的过期时间达到的时候,可以对该缓存的数据进行一个验证和存储的处理. 这个需求,主要是为了解决MySQL的写入瓶颈,通过延期、合并写入请求来减少MySQL的并发写入量. 现在逐渐记录出来和有需要的朋友一起讨论.