memcached在linux安装

服务器端主要是安装memcache服务器端.
下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz
另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3。(如果你的系统已经安装了libevent,可以不用安装)
官网:http://www.monkey.org/~provos/libevent/
下载:http://www.monkey.org/~provos/libevent-1.3.tar.gz

用wget指令直接下载这两个东西.下载回源文件后。
1.先安装libevent。这个东西在配置时需要指定一个安装路径,即./configure –prefix=/usr;然后make;然后make install;
2.再安装memcached,只是需要在配置时需要指定libevent的安装路径即./configure –with-libevent=/usr;然后make;然后make install;
这样就完成了Linux下Memcache服务器端的安装。详细的方法如下:

1.分别把memcached和libevent下载回来,放到 /tmp 目录下:
# cd /tmp
# wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz
# wget http://www.monkey.org/~provos/libevent-1.2.tar.gz

2.先安装libevent:
# tar zxvf libevent-1.2.tar.gz
# cd libevent-1.2
# ./configure –prefix=/usr
# make
# make install

3.测试libevent是否安装成功:
# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
-rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3
-rw-r–r– 1 root root 454156 11?? 12 17:38 libevent.a
-rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3
还不错,都安装上了。

4.安装memcached,同时需要安装中指定libevent的安装位置:
# cd /tmp
# tar zxvf memcached-1.2.0.tar.gz
# cd memcached-1.2.0
# ./configure –with-libevent=/usr
# make
# make install
如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。
安装完成后会把memcached放到 /usr/local/bin/memcached ,

5.测试是否成功安装memcached:
# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug

启动Memcached服务
1.启动Memcache的服务器端:
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.141.64 -p 12000 -c 256 -P /tmp/memcached.pid

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

2.如果要结束Memcache进程,执行:

# kill `cat /tmp/memcached.pid`

也可以启动多个守护进程,不过端口不能重复。

测试Memcached:

[root@localhost /]# telnet 192.168.141.64 12000
Trying 192.168.141.64...
Connected to 192.168.141.64 (192.168.141.64).
Escape character is '^]'.
set key1 0 60 4
zhou
STORED
get key1
VALUE key1 0 4
zhou
END


至此Memcached安装成功!

常见问题:

1.如果启动Memcached服务的时候遇到了

/usr/local/bin/memcached: error while loading shared libraries: libevent-1.2.so.1: cannot open shared object file: No such file or directory;

解决方案:

[root@localhost bin]# LD_DEBUG=libs memcached -v  #查看memcached需要加载那些lib.

[root@localhost bin]# ln -s /usr/lib/libevent-1.2.so.1 /usr/lib64/libevent-1.2.so.1
[root@localhost bin]# /usr/local/bin/memcached -d -m 100 -u root -p 12000 -c 1000 -P /tmp/memcached.pid
[root@localhost bin]# ps -aux

可以看到启动的Memcached服务了.

方式二

将libevent-1.3c.so.1拷贝到任何一个列出的lib 下就可以了。
或者 软链接
ln -s /Data/libevent/lib/libevent-1.3b.so.1 /usr/lib/libevent-1.3c.so.1 
或者 修改vi /etc/profile文件。
export LIBRARY_PATH=:/usr/local/lib:"/usr/local/BerkeleyDB.4.3/lib":/usr/local/lib:/opt/Ice-3.1/lib:/usr/lib:/home/mahaibo/install/lib

2.把Memcached服务加载到Linux的启动项中.万一机器断电系统重启.那么Memcached就会自动启动了.

假如启动Memcache的服务器端的命令为:
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.141.64 -p 12000 -c 256 -P /tmp/memcached.pid容来自17jquery

想开机自动启动的话,只需在/etc/rc.d/rc.local中加入一行,下面命令
/usr/local/bin/memcached -d -m 10 -p 12000 -u apache -c 256 
上面有些东西可以参考一下:即,ip不指定时,默认是本机,用户:最好选择是:apache / deamon / nobody

这样,也就是属于哪个用户的服务,由哪个用户启动。


其它:

[root@pyap01 ~]# memcached -h
memcached 1.4.24
  -p <num> TCP port number to listen on (default: 11211)
  -U <num> UDP port number to listen on (default: 11211, 0 is off)
  -s <file> UNIX socket path to listen on (disables network support)
  -A enable ascii "shutdown" command
  -a <mask> access mask for UNIX socket, in octal (default: 0700)
  -l <addr> interface to listen on (default: INADDR_ANY, all addresses)
    <addr> may be specified as host:port. If you don't specify
    a port number, the value you specified with -p or -U is
    used. You may specify multiple addresses separated by comma
    or by using -l multiple times
  -d run as a daemon
  -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
  -V print version and exit
  -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)
  -F Disable flush_all command
  -o Comma separated list of extended or experimental options
  - (EXPERIMENTAL) maxconns_fast: immediately close new
    connections if over maxconns limit
  - hashpower: An integer multiplier for how large the hash
    table should be. Can be grown at runtime if not big enough.
    Set this based on "STAT hash_power_level" before a
    restart.
  - tail_repair_time: Time in seconds that indicates how long to wait before
    forcefully taking over the LRU tail item whose refcount has leaked.
    Disabled by default; dangerous option.
  - hash_algorithm: The hash table algorithm
    default is jenkins hash. options: jenkins, murmur3
  - lru_crawler: Enable LRU Crawler background thread
  - lru_crawler_sleep: Microseconds to sleep between items
    default is 100.
  - lru_crawler_tocrawl: Max items to crawl per slab per run
    default is 0 (unlimited)
  - lru_maintainer: Enable new LRU system + background thread
  - hot_lru_pct: Pct of slab memory to reserve for hot lru.
    (requires lru_maintainer)
  - warm_lru_pct: Pct of slab memory to reserve for warm lru.
    (requires lru_maintainer)
  - expirezero_does_not_evict: Items set to not expire, will not evict.
    (requires lru_maintainer)

原文地址:https://www.cnblogs.com/heric/p/5794253.html