Linux下安装memcached

本文详细介绍了在Linux环境下安装并配置Memcached的过程,包括依赖库的安装、Memcached的安装步骤、启动与停止服务的方法,以及通过脚本实现自动启动。此外,还提供了xmemcached客户端的使用指南,包括如何将其添加到项目依赖中,并通过一个简单的示例代码展示如何利用xmemcached将数据放入缓存和从缓存中读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

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

在Linux上安装Memcached

memcached依赖于libevent,我们所使用的版本为:

libevent-2.0.16

memcached-1.4.10 

首先确认libevent是否安装,

#ls -al /usr/lib | grep libevent

145205_BCNP_144320.png

如图所示说明libevent已经安装。
如果没有安装,安装步骤如下:

# wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.16-stable.tar.gz
# tar zxvf libevent-2.0.16-stable.tar.gz
# cd libevent-2.0.16-stable
# ./configure --prefix=/usr
# make && make install
#ls -al /usr/lib | grep libevent
# wget http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz
# tar zxvf memcached-1.4.10.tar.gz
# cd memcached-1.4.10
# ./configure --with-libevent=/usr
# make && make install

安装成功后的文件路径为:/usr/local/bin/memcached
测试memcached是否安装成功
# ls -al /usr/local/bin/mem*

145205_mHmk_144320.png

说明已经安装成功!

启动memcached

手动启动:

# memcached -d -m 1024 -u root -p 11211
参数说明: 
-d 启动为守护进程 
-m <num> 分配给Memcached使用的内存数量,单位是MB,默认为64MB 
-u <username> 运行Memcached的用户,仅当作为root运行时 
-l <ip_addr> 监听的服务器IP地址,默认为环境变量INDRR_ANY的值 
-p <num> 设置Memcached监听的端口,最好是1024以上的端口 
-c <num> 设置最大并发连接数,默认为1024 
-P <file> 设置保存Memcached的pid文件,与-d选择同时使用

停止服务:
1. ps -ef | grep memcached
2. kill -9 进程

脚本启动:

# vim /etc/init.d/memcached
输入如下脚本:
#!/bin/bash
#
# Save me to /etc/init.d/memcached
# And add me to system start
# chmod +x memcached
# chkconfig --add memcached
# chkconfig --level 35 memcached on
#
# Written by lei
#
# chkconfig: - 80 12
# description: Distributed memory caching daemon
#
# processname: memcached
# config: /usr/local/memcached/my.conf
 
source /etc/rc.d/init.d/functions
 
### Default variables
PORT="11211"
USER="root"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
#SYSCONFIG="/usr/local/memcached/my.conf"
 
### Read configuration
#[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"
 
RETVAL=0
prog="/usr/local/memcached/bin/memcached"
desc="Distributed memory caching"
 
start() {
    echo -n $"Starting $desc ($prog): "
    daemon $prog -d -p $PORT -u $USER -c $MAXCONN -m $CACHESIZE $OPTIONS
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached
    return $RETVAL
}
 
stop() {
    echo -n $"Shutting down $desc ($prog): "
    killproc $prog
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/memcached
    return $RETVAL
}
 
restart() {
    stop
    start
}
 
reload() {
    echo -n $"Reloading $desc ($prog): "
    killproc $prog -HUP
    RETVAL=$?
    echo
    return $RETVAL
}
 
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  condrestart)
    [ -e /var/lock/subsys/$prog ] && restart
    RETVAL=$?
    ;;
  reload)
    reload
    ;;
  status)
    status $prog
    RETVAL=$?
    ;;
   *)
    echo $"Usage: $0 {start|stop|restart|condrestart|status}"
    RETVAL=1
esac
 
exit $RETVAL
 
 
赋予权限:
# cd /etc/init.d/
# chmod +x memcached
# chkconfig --add memcached
# chkconfig --level 35 memcached on

操作:

启动:service memcached start
停止:service memcached stop
重启:service memcached restart

xmemcached简介

xmemcached是java操作memcache的一个客户端,当然了还有其他的客户端,比如说spymemcached,选用xmemcached是因为它基于java nio实现的高性能memcache客户端,尤其是在高并发的前提下nio的性能将体现出来,读缓存库的效率非常高,存的效率和spy差不多。

具体的测试报告:
http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html

开始使用xmemcached

在pom.xml中添加xmemcached,依赖slf4j:

145206_xnN8_144320.png

简单示例代码如下:

145206_7wkv_144320.png

该代码实现了将List对象放入到缓存中并从缓存中读取出来。


将memcached启动加入到系统启动项

系统启动项文件(以51为例子):/etc/rc.d/rc.local

 /usr/local/bin/memcached -d -p 11211 -c 1024 -m 64
/usr/local/bin/memcached -d -p 11212 -c 1024 -m 64 

在rc.local配置文件中增加着两行代码就OK



转载于:https://my.oschina.net/mingpeng/blog/219982

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值