Memcached安装与配置

 memcached是danga.com的一个项目,它是一款开源的高性能的分布式内存对象缓存系统,最早是给LiveJournal提供服务的,后来逐渐被越来越多的大型网站所采用,用于在应用中减少对数据库的访问,提高应用的访问速度,并降低数据库的负载。

 为了在内存中提供数据的高速查找能力,memcached使用key-value形式存储和访问数据,在内存中维护一张巨大的HashTable,使得对数据查询的时间复杂度降低到O(1),保证了对数据的高性能访问。内存的空间总是有限的,当内存没有更多的空间来存储新的数据是,memcached就会用LRU算法将最近不常访问的数据淘汰掉,以腾出空间来存放新的数据。memcached存储支持的数据格式也是灵活多样的,通过对象的序列化机制,可以将更高层抽象的对象转换成为二进制数据,存储在缓存服务器中,当前端应用需要时,又可以通过二进制内容反序列化,将数据还原成原对象。



 由于memcached使用了libevent来进行高效的网络连接处理,因此在安装memcached之前,需要先安装libevent。
 所有的安装包可以在这里下载。

安装libevent
版本 libevent-2.0.21-stable.tar.gz(假设放在/root目录下)

[root@zzh ~]# mkdir libevent
[root@zzh ~]# tar -zvxf libevent-2.0.21-stable.tar.gz
[root@zzh ~]# cd libevent-2.0.21-stable
[root@zzh libevent-2.0.21-stable]# ./configure --prefix=/root/libevent
[root@zzh libevent-2.0.21-stable]# make
[root@zzh libevent-2.0.21-stable]# make install

测试libevent是否安装成功(没有必然性,只供参考)

[root@zzh libevent-2.0.21-stable]# ls -al /root/libevent/lib | grep libevent
lrwxrwxrwx. 1 root root      21 4月   5 22:05 libevent-2.0.so.5 -> libevent-2.0.so.5.1.9
-rwxr-xr-x. 1 root root  968722 4月   5 22:05 libevent-2.0.so.5.1.9
-rw-r--r--. 1 root root 1571586 4月   5 22:05 libevent.a
lrwxrwxrwx. 1 root root      26 4月   5 22:05 libevent_core-2.0.so.5 -> libevent_core-2.0.so.5.1.9
-rwxr-xr-x. 1 root root  585265 4月   5 22:05 libevent_core-2.0.so.5.1.9
-rw-r--r--. 1 root root  978314 4月   5 22:05 libevent_core.a
-rwxr-xr-x. 1 root root     980 4月   5 22:05 libevent_core.la
lrwxrwxrwx. 1 root root      26 4月   5 22:05 libevent_core.so -> libevent_core-2.0.so.5.1.9
lrwxrwxrwx. 1 root root      27 4月   5 22:05 libevent_extra-2.0.so.5 -> libevent_extra-2.0.so.5.1.9
-rwxr-xr-x. 1 root root  404884 4月   5 22:05 libevent_extra-2.0.so.5.1.9
-rw-r--r--. 1 root root  593344 4月   5 22:05 libevent_extra.a
-rwxr-xr-x. 1 root root     987 4月   5 22:05 libevent_extra.la
lrwxrwxrwx. 1 root root      27 4月   5 22:05 libevent_extra.so -> libevent_extra-2.0.so.5.1.9
-rwxr-xr-x. 1 root root     945 4月   5 22:05 libevent.la
lrwxrwxrwx. 1 root root      30 4月   5 22:05 libevent_pthreads-2.0.so.5 -> libevent_pthreads-2.0.so.5.1.9
-rwxr-xr-x. 1 root root   18462 4月   5 22:05 libevent_pthreads-2.0.so.5.1.9
-rw-r--r--. 1 root root   18662 4月   5 22:05 libevent_pthreads.a
-rwxr-xr-x. 1 root root    1008 4月   5 22:05 libevent_pthreads.la
lrwxrwxrwx. 1 root root      30 4月   5 22:05 libevent_pthreads.so -> libevent_pthreads-2.0.so.5.1.9
lrwxrwxrwx. 1 root root      21 4月   5 22:05 libevent.so -> libevent-2.0.so.5.1.9

安装memcached

[root@zzh ~]# mkdir memcached
[root@zzh ~]# tar -zvxf memcached-1.4.7.tar.gz
[root@zzh ~]# cd memcached-1.4.7/
[root@zzh memcached-1.4.7]# ./configure --prefix=/root/memcached --with-libevent=/root/libevent
[root@zzh memcached-1.4.7]# make
[root@zzh memcached-1.4.7]# make install


启动memcached

[root@zzh ~]# cd memcached/bin/
[root@zzh bin]# memcached -d -m 10 -u root -l 10.10.195.112 -p 11211 -c 32 -P /tmp/memcached.pid

参数描述:
-d :启动一个守护进程,
-m:分配给Memcache使用的内存数量,单位是MB,默认是64MB,
-u :运行Memcache的用户
-l :监听的服务器IP地址
-p :设置Memcache监听的端口,默认是11211 注:-p(p为小写)
-c :设置最大并发连接数,默认是1024
-P :设置保存Memcache的pid文件 注:-P(P为大写)
-f :块大小增长因子,默认是1.25
-n :最小分配空间,key+value+flags默认是48
-h :显示帮助

查看memcached进程

[root@zzh bin]# ps -aux | grep memcached
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root     13904  0.0  0.0 326708   912 ?        Ssl  22:26   0:00 ./memcached -d -m 10 -u root -l 10.10.195.112 -p 11211 -c 32 -P /tmp/memcached.pid
root     13912  0.0  0.0 103248   852 pts/2    S+   22:27   0:00 grep memcached

关闭memcached进程(采用kill pid的命令)

[root@zzh bin]# kill `cat /tmp/memcached.pid`

或者

[root@zzh bin]# kill 13904

连接memcached

telnet 127.0.0.1 11211

 memcache有一些常用的命令:set, add, replace,append, preappend, cas, get, incr, decr, delete等,详细可以查阅相关资料。



Java客户端与memcached
 memcached官方提供的Memcached-Java-Client工具包含了对memcached协议的Java封装,使用它可以比较方便地与环城服务端进行通讯。
 案例

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
import com.schooner.MemCached.MemcachedItem;

public class MemcachedTest
{
    public static void init()
    {
        String servers[] = {
                "10.10.195.112:11211"
        };
        SockIOPool pool = SockIOPool.getInstance();
        pool.setServers(servers);
        pool.setFailover(true);
        pool.setInitConn(10);
        pool.setMinConn(5);
        pool.setMaxConn(25);
        pool.setMaintSleep(30);
        pool.setNagle(false);
        pool.setSocketTO(3000);
        pool.setAliveCheck(true);
        pool.setHashingAlg(SockIOPool.CONSISTENT_HASH);
        pool.initialize();
    }
    public static void main(String[] args)
    {
        init();
        MemCachedClient mem = new MemCachedClient();
        mem.add("UserName", "zzzzh");
        mem.prepend("UserName", "hello ");
        mem.append("UserName", "!");
        System.out.println(mem.get("UserName"));

        mem.set("key", 1);
        System.out.println(mem.get("key"));
        MemcachedItem item = mem.gets("key");
        mem.cas("key", (Integer)item.getValue()+1,item.getCasUnique());
        System.out.println(mem.get("key"));
    }
}

输出结果:

hello zzzzh!
1
2


参考资料
1. 《大型分布式网站架构设计与实践》陈康贤著

时间: 2024-10-29 02:59:21

Memcached安装与配置的相关文章

windows/linux/php中memcached.exe的安装与配置

windows+php中memcached.exe的安装与配置 1.Windows版本的下载地址为: http://code.jellycan.com/memcached/ 将压缩文件解压到  c:/memcached/ 2. 在CMD下输入 "c:/memcached/memcached.exe -d install" 安装. 3. 再输入:"c:/memcached/memcached.exe -d start" 启动.NOTE:以后memcached将作为wi

memcached安装和验证

1> libevent安装 官网down:  http://www.monkey.org 我的网盘down:http://pan.baidu.com/s/1qW8syZi [root@luozhonghua memcachedsource]# tar -zxvf libevent-1.4.13-stable.tar.gz [root@luozhonghua memcachedsource]# cd libevent-1.4.13-stable [root@luozhonghua memcache

Memcached服务器安装、配置、使用详解

我使用的是CentOS 6.4系统,安装的Memcached版本为1.4.20.这里,记录一下安装配置的过程,以及如何使用一些常用的客户端来访问Memcached存储的数据. 安装配置 首先,编译.安装.配置libevent库,执行如下命令: 1 wget https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz 2 tar xvzf libevent-1.4.14b-stable.tar.gz 3

ubuntu+php环境下的Memcached 安装方法_Linux

目前被很多系统所使用,例如Flick.Twitter等.这是一套开放源代码软件,以BSD license授权发布.下面记录一下在lamp环境下的Memcached安装.关于Memcached的应用,这里有两篇不错的文章:<应用 memcached 提升站点性能>.<Discuz!的Memcache缓存实现> 使用apt安装memcached apt-get install memcached 启动memcached 1. 终端下使用命令 memcached就可以启动 .例如 mem

php memcached安装与使用

php教程 memcached安装与使用 1.简介 memcache模块是一个高效的守护进程,提供用于内存缓存的过程式程序和面向对象 的方便的接口,特别是对于设计动态web程序时减少对数据库教程的访问. memcache也提供用于通信对话(session_handler)的处理. 更多memcache 模块相关信息可以到 http://www.danga.com/memcached/ 查阅. 1.1.memcache在php.ini中的配置项列表 memcache在php.ini中的配置项列表

linux下Memcached安装以及PHP的调用

一:安装libevent 由于memcached安装时,需要使用libevent类库,所以先安装libevent 1.官网下载:http://libevent.org/ #wget   https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz 2.解压缩 #tar xzfv  libevent-2.0.12-stable.tar.gz 3.进入目录 #cd libevent-2.0.12-stable

Maven的下载,安装,配置,测试,初识以及Maven私服

1:Maven目录分析 bin:含有mvn运行的脚本 boot:含有plexus-classworlds类加载器框架 conf:含有settings.xml配置文件 lib:含有Maven运行时所需要的java类库 Settings.xml 中默认的用户库: ${user.home}/.m2/repository[通过maven下载的jar包都会存储到指定的个人仓库中] Maven默认仓库下载地址在: maven的lib目录下maven-model-builder-3.0.4.jar的pom.x

vcenter5.5无AD下的安装与配置

公司现在的虚拟化使用的基本上都是vsphere,目前大约有7台物理机,为了更好的管理虚拟机打算上vcenter. 下面就把vcenter的安装与配置记录下,在此vcenter版本为5.5,而且没有使用单独的数据库和AD域控制. vcenter安装相关的软件包如下: 上图中VMware-viclient-all-5.5.0-1281650为客户端安装文件,VMware-VIMSetup-all-5.5.0-1312299.iso为vcenter安装文件,VMware-VMvisor-Install

第1章 开发环境安装和配置(一):概述

原文 第1章 开发环境安装和配置(一):概述 目前Android在全世界市场上大约有75%的占有率,国人Android手机的持有比例更甚,甚至达到90%以上[网上找的介绍,不必在意]. 用C#开发手机应用程序,建议首选VS2015,这是因为VS2015内置的是C# 6.0,很多原来实现起来比较繁琐的操作,在VS2015下也都变得非常简单了. 1.跨平台移动应用开发 VS2015的移动跨平台采用Xamarin架构,这让原本就熟悉Visual Studio的开发者不用再熟悉其他的开发工具就能直接开发