Memcache初学之一 memcache安装

Windows版本安装

windows 上安装 memcached ,我的理解是一般用于应用程序测试和开发阶段。一般在 windows 上直接应用memcached 的比较少。本次功能介绍和学习先用 windows 吧,毕竟环境容易找到些。

 

下载二进制版本

 

windows 版本的服务端程序在官方网站上没有找到,官网只有源代码版本。为了方便,直接在网上 google 到对应的二进制版本下载 .

这里使用 1.4.4wind32 版本

下载地址: http://downloads.northscale.com/memcached-win32-1.4.4-14.zip

 

安装单个服务

 

window 版本的安装灰常简单。

本案例使用环境: WINDOWS7 的盗版 64 位 +i5CPU+4G 内存

直接解压到你喜欢的目录,这里我使用 D:\tools\memcached\memcached-win32-1.4.4-14

安装 memcached 为系统服务,并启动服务

D:\>cd D:\tools\memcached\memcached-win32-1.4.4-14

D:\tools\memcached\memcached-win32-1.4.4-14>memcached.exe -d install

D:\tools\memcached\memcached-win32-1.4.4-14>memcached.exe -d start

服务启动后, memcached 默认使用 64M 内存和 11211 端口作为服务器参数。如果你希望调整参数,请参考: memcached.exe -h

\验证安装结果

 

Java代码    收藏代码
  1. d:\>telnet localhost 11211  
  2. add firstKey 0 0 15  
  3. Hello Memcached  
  4. STORED  
  5. get firstKey  
  6. VALUE firstKey 0 15  
  7. Hello Memcached  
  8. END  
  9. quit  

    OK, 使用存取命令执行成功。表示安装成功。

 

安装多个服务

 

下面的代码是安装三个 memcached 服务在同一 Windows 操作系统。

使用的命令是 sc 命令,详情参考: SC –H. 。分别使用端口号 11211,11212,11213 ,每个服务使用内存 128M( -m 128 )

 

sc create memcached-1 binpath= "D:\tools\memcached\memcached-win32-1.4.4-14\memcached.exe -d runservice -m 64 -p 11211"

sc create memcached-2 binpath= "D:\tools\memcached\memcached-win32-1.4.4-14\memcached.exe -d runservice -m 64 -p 11212"

sc create memcached-3 binpath= "D:\tools\memcached\memcached-win32-1.4.4-14\memcached.exe -d runservice -m 64 -p 11213"

 

安装多个 memcached 服务,便于在同一个机器上测试客户端的分布式逻辑。

 

linux

linux 版本的安装在各个发布版本中,大致相同,本案例采用 Red Hat AS5 环境(暂时只有这个虚拟机)。

 

安装方式

Linux 下有 package 方式和 source 方式, package 方式安装是真对具体发行版本和内核的默认安装,如果想自定义或配置一般采用 source 安装方式。本例采用 source 方式安装。

 

下载 source 安装包 

本案例使用最新版 memcached-1.4.5.tar.gz 和 libevent-2.0.10-stable.tar.gz 。本案例使用 libevent 作为memcached 的底层通讯插件,提供非阻塞式的 SOCKET 通讯。

下载地址:

http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz

http://www.monkey.org/~provos/libevent-2.0.10-stable.tar.gz

 

 

 

Java代码    收藏代码
  1. [root@hadoop00 /]# cd /opt/  
  2.   
  3. [root@hadoop00 opt]# wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz  
  4.   
  5. [root@hadoop00 opt]# http://www.monkey.org/~provos/libevent-2.0.10-stable.tar.gz  

 

环境需求

Source 方式安装需要 GCC ,请检查是否安装,如果没有请先安装。

 

 

Java代码    收藏代码
  1. [root@hadoop00 opt]# gcc –v  

 

安装 libevent

 

Java代码    收藏代码
  1. [root@hadoop00 opt]# tar -zxvf libevent-2.0.10-stable .tar.gz   
  2. [root@hadoop00 opt]# cd libevent-2.0.10-stable   
  3. [root@hadoop00 opt]# ./configure --prefix=/usr/   
  4. [root@hadoop00 opt]# make  
  5. [root@hadoop00 opt]# make install  
  6. [root@hadoop00 opt]# ls /usr/lib |grep libevent    // 验证安装  
 

安装 memecached 

 

Java代码    收藏代码
  1. [root@hadoop00 opt]# tar -zxvf memcached-1.4.5.tar.gz  
  2.   
  3. [root@hadoop00 opt]# cd memcached-1.4.5  
  4.   
  5. [root@hadoop00 memcached-1.4.5]# ./configure --prefix=/usr/local/memcached --with-libevent=/usr/  
  6.   
  7. [root@hadoop00 memcached-1.4.5]# make   
  8.   
  9. [root@hadoop00 memcached-1.4.5]# make install  
  10.   
  11. [root@hadoop00 memcached-1.4.5]# ls -al /usr/local/memcached/bin  
 

设置防火墙

如果你在内网的网络平面使用,可以关闭防火墙。如果你在公网环境,请配置防火墙忽略 memcached 。

Java代码    收藏代码
  1. 永久性生效,重启后不会复原  
  2.   
  3. 开启:  
  4.   
  5. [root@hadoop00]# chkconfig iptables on   
  6.   
  7. 关闭:  
  8.   
  9. [root@hadoop00]# chkconfig iptables off  
  10.   
  11. 即时生效,重启后复原    
  12.   
  13. 开启:  
  14.   
  15. [root@hadoop00]# service iptables start   
  16.   
  17. 关闭:  
  18.   
  19. [root@hadoop00]# service iptables stop   
  20.   
  21. 设置防火墙:  
  22.   
  23. 修改 /etc/sysconfig/iptables 文件,  
  24.   
  25. 添加 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT  
 

启动 memcached 服务 

 

[root@hadoop00]# /usr/local/memcached/bin/memcached -d -m 100 -u root -l 192.168.160.129 -p 11211 -c 256 -P /tmp/memcached.pid

启动参数介绍,其它参数请参见: Memcached 启动参数 小节

-d 选项是启动一个守护进程, 

-m 是分配给Memcache 使用的内存数量,单位是MB ,我这里是100MB , 

-u 是运行Memcache 的用户,我这里是root , 

-l 是监听的服务器IP 地址,如果有多个地址的话,我这里指定了服务器的IP 地址192.168.36.200 , 

-p 是设置Memcache 监听的端口,我这里设置了11211 ,最好是1024 以上的端口,我们这里统一使用11211-c选项是最大运行的并发连接数,默认是1024 ,我这里设置了256 ,按照你服务器的负载量来设定。

-P 是设置保存Memcache 的pid 文件,我这里是保存在/tmp/memcached.pid

 

结束 Memcache 服务 

直接采用 kill 方式

Java代码    收藏代码
  1. [root@hadoop00 bin]# kill cat /tmp/memcached.pid  
  2. 或  
  3. [root@hadoop00 bin]# ps -ax|grep memcached  
  4.   
  5. 18007 ?  Ssl    0:00 ./memcached -d -m 100 -u root -l 192.168.221.10 -p 11211 -c 256 -P /tmp/memcached.pid  
  6.   
  7.   [root@hadoop00 bin]# kill -9 18007  

 

测试安装

 

使用 telnet 方式直接连接到 memcached 进行简单测试,注意,这里只能使用你启动时候使用的 IP 进行连接。本例是 192.168.221.10

 
Java代码    收藏代码
  1. [root@hadoop00 bin]# telnet 192.168.221.10 11211  
  2.   
  3. Trying 192.168.221.10...  
  4.   
  5. Connected to hadoop00 (192.168.221.10).  
  6.   
  7. Escape character is '^]'.  
  8.   
  9. add key1 0 0 12  
  10.   
  11. hello first!  
  12.   
  13. STORED  
  14.   
  15. get key1  
  16.   
  17. VALUE key1 0 12  
  18.   
  19. hello first!  
  20.   
  21. END  
  22.   
  23. ^]  
  24.   
  25. telnet> q  
  26.   
  27. Connection closed.  

Memcached 启动参数

 

-p <num>      TCP 监听端口,默认 11211

-U <num>      UDP 监听端口,默认 11211 ,如果配置 0 表示关闭。

-s <file>     UNIX socket path to listen on (disables network support)

-a <mask>     access mask for UNIX socket, in octal (default: 0700)

-l <ip_addr>    监听 IP 。默认是本地所有 IP 地址

-d            启动一个守护进程

-r            maximize core file limit

-u <username>   assume identity of <username> (only when run as root)

-m <num>      max memory to use for items in megabytes (default: 64 MB)

-M            return error on memory exhausted (rather than removing items)

-c <num>      max simultaneous connections (default: 1024)

-k            lock down all paged memory.  Note that there is a

               limit on how much memory you may lock.  Trying to

              allocate more than that would fail, so be sure you

              set the limit correctly for the user you started

              the daemon with (not for -u <username> user;

               under sh this is done with 'ulimit -S -l NUM_KB').

-v            verbose (print errors/warnings while in event loop)

-vv           very verbose (also print client commands/reponses)

-vvv          extremely verbose (also print internal state transitions)

-h            print this help and exit

-i            print memcached and libevent license

-P <file>     save PID in <file>, only used with -d option

-f <factor>   chunk size growth factor (default: 1.25)

-n <bytes>    minimum space allocated for key+value+flags (default: 48)

-L            Try to use large memory pages (if available). Increasing

              the memory page size could reduce the number of TLB misses

              and improve the performance. In order to get large pages

              from the OS, memcached will allocate the total item-cache

              in one large chunk.

-D <char>     Use <char> as the delimiter between key prefixes and IDs.

              This is used for per-prefix stats reporting. The default is

              ":" (colon). If this option is specified, stats collection

              is turned on automatically; if not, then it may be turned on

              by sending the "stats detail on" command to the server.

-t <num>      number of threads to use (default: 4)

-R             Maximum number of requests per event, limits the number of

              requests process for a given connection to prevent

              starvation (default: 20)

-C            Disable use of CAS

-b            Set the backlog queue limit (default: 1024)

-B            Binding protocol - one of ascii, binary, or auto (default)

-I            Override the size of each slab page. Adjusts max item size

              (default: 1mb, min: 1k, max: 128m)

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

 

你可能感兴趣的:(缓存,memcache)