陈斌彬的技术博客

Stay foolish,stay hungry

Install Memcached on Mac OS X

There are two ways to install memcached on Mac OS X. One is the easy way, the other is the harder but more flexible way.

Installation using brew Package Manager

Installing memcached using brew is the easy way, and it is just a matter of a single command.

$ brew install memcached

There you have memcached installed on your Mac!

Installation from Source

Installation from source code is a little bit harder, but you have more flexibility.

Memcached is depended on libevent, so install it first. Get the latest stable libevent source from http://libevent.org.

$ cd /tmp
$ wget https://github.com/downloads/libevent/libevent/libevent-2.0.18-stable.tar.gz
$ tar zxvf libevent-2.0.18-stable.tar.gz
$ cd libevent-2.0.18-stable
$ ./configure
$ make
$ sudo make install

Next install memcached. Get the latest stable memcached source from http://memcached.org.

$ cd /tmp
$ wget http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz
$ cd memcached-1.4.13
$ ./configure
$ make
$ sudo make install

Starting memcached

Memcached listens on port 11211 by default, to change it, use the -p option.

$ memcached -p 8000

To run memcached as a daemon (background process), instead of sitting at your terminal, use the -d option.

$ memcached -d -p 8000

这样 memcached 的安装并可以成功启动了,不过你现在只能用 telnet 去使用它。想在你的应用中使用它,还得安装对应模块,如 PHP 应用,需要安装 php-php 的扩展 memcache(少个 d)。

启动参数说明:

args    des
-p  指定端口号(默认值:11211)
-U <num>    UDP 监听端口 (默认值: 11211, 0 时关闭)
-s <file>   用于监听的 UNIX 套接字路径(禁用网络支持)
-a <mask>   UNIX 套接字访问掩码,八进制数字(默认值:0700)
-l <ip_addr>    绑定地址 (默认:所有都允许,无论内外网或者本机更换 IP,有安全隐患。若设置为 127.0.0.1 就只能本机访问)
-d  启动一个守护进程
-r  最大化核心文件限制
-u <username>   绑定使用指定用于运行进程 <username>(只有 root 用户可以使用这个参数)
-m  指定最大使用内存大小(默认值:64 MB)
-M  内存耗尽时返回错误,而不是删除项
-t  线程数(默认值:4)
-c  最大同时连接数(默认是 1024)
-m  最大内存使用,单位 MB。(默认值:64 MB)
-k  锁定所有内存页。注意你可以锁定的内存上限。试图分配更多内存会失败的,所以留意启动守护进程时所用的用户可分配的内存上限。(不是前面的 -u <username> 参数;在 sh 下,使用命令"ulimit -S -l NUM_KB"来设置。)
-v  提示信息(在事件循环中打印错误/警告信息)
-vv 详细信息(并且打印客户端命令/响应)
-vvv    超详细信息(并且打印内部状态的变化)
-h  打印这个帮助信息并退出。
-i  打印 memcached 和 libevent 的许可。
-P <file>   将 PID 写入文件<file>,这样可以使得后边进行快速进程终止, 需要与-d 一起使用
-f  块大小增长因子(默认是 1.25)
-n <bytes>  最小分配空间,key+value+flags(默认值:48)
-L  尝试使用大内存页(如果可用的话)。提高内存页尺寸可以减少"页表缓冲(TLB)"丢失次数,提高运行效率
-D <char>   使用 <char> 作为前缀和 ID 的分隔符。这个用于按前缀获得状态报告。默认是":"(冒号)。 如果指定了这个参数,则状态收集会自动开启;如果没指定,则需要用命令"stats detail on"来开启。
-t <num>    使用的线程数(默认:4)
-R  每个连接可处理的最大请求数。
-C  禁用 CAS。
-b  设置后台日志队列的长度(默认:1024)
-B  绑定协议 - 可能值:ascii,binary,auto(默认值)
-I  重写每个数据页尺寸。调整数据项最大尺寸。
-S  启用 sasl 安全验证功能,开启后,客户端需要提供用户名密码才能访问 memcached
-o  (慎用)逗号分隔的扩展或实验性的选项列表
-(实验) maxconns_fast 立即关闭新的连接,如果超过大并发限制
-hashpower  整数乘法器为哈希表应该是多大。在运行时,如果不是足够大,可以种植。设置在重新启动之前基于"STAT hash_power_level"。