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是否成功安装(没有必定性。仅仅供參考)

[[email protected] 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进程

[[email protected] 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等,具体能够查阅相关文档。



Javaclient与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-24 11:54:14

Memcached安装与配置的相关文章

Windows和Linux环境下Memcached安装与配置(转)

一.memcached安装配置 windows平台安装 1.memcached-1.2.6-win32-bin.zip下载地址: http://code.jellycan.com/memcached/,执行memcached.exe -d install 安装. 2.守护进程方式启动:memcached.exe -m 512 -d start-d为守护进程启动,不能指定端口 默认端口11211-m为指定内存大小 3.指定端口启动:memcached.exe –p 33000 -m 512可以启动

Memcached 安装及配置

下载Memcached.exe 保存到c:\memcached 运行command: 输入 c:\memcached\memcached.exe -d install 回车,安装memcached server 输入 c:\memcached\memcached.exe -d start 回车, 这个也可以自行到服务管理器中启动 memcached server 默认监听端口 11211 , 且默认可执行命令只是 -d runservice , 所以在command中修改 -p -m 等是无效的

Linux CentOS 7下Memcached 安装与配置

前言 本篇文章记录一下Linux CentOS 7中关于Memcached的安装与配置. 安装 安装memcached之前首先需要安装libevent,我这里用的版本是: ?libevent-2.0.22 ?memcached-1.4.25 首先将这两个安装文件上传至Linux服务器,在解压安装之前最好先检查一下是否已安装,从libevent开始: rpm -q libevent 发现系统已经安装了一个版本的libevent: 这里写图片描述 既然已经安装了一个版本的libevent,那么我们就

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 ln -s /usr/local/libevent-1.4.14b-stable /usr/local/libevent 4 cd /usr/local/libevent 5

memcached安装及配置

1.安装么么cached服务,链接为http://i.cnblogs.com/Files.aspx,下载解压后放在一个文件夹下,在cmd中进入memcached路径下, 输入memcached.exe  -d  start , 2.安装扩展, 3.重启服务 4.测试: $memcache = memcache_connect('localhost', 11211);if ($memcache) {$memcache->set("str_key", "String to

Memcached安装和配置

最近看了一下memcached的相关部分,整理一下memcached的安装 首先应该下载libevent和memcached的压缩包,上传到你的服务器 libevent的官网:http://libevent.org memcached的官网:http://www.memcached.org 1.查看服务器中是否已经安装libevent rpm -qa | grep libevent 假如存在的话就,就卸载掉 rpm -e libevent-1.4.13-4.el6.x86_64 --nodeps

memcached(windows)安装与配置

关键字:memcached(windows)安装与配置 1. 下载windows版本的Memcached:http://code.jellycan.com/memcached/ 2.解压之后放在硬盘的目录下,如:D:\memcached . 然后在运行中输入cmd进入命令行,进入到Memcached.exe 所在的目录,例如:D:\memcached,然后输入: Cmd代码  收藏代码 到memcached根目录 1.安装 memcached.exe –d install 2.启动 memcac

nginx+tomcat+memcached网页动态请求分配的安装与配置

 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选. Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memc

Memcached 1.4.22安装和配置

Memcached 1.4.22安装和配置 准备 1. 下载安装文件: cd /tmp     wget http://downloads.sourceforge.net/levent/libevent-2.0.22-stable.tar.gz     wget http://www.memcached.org/files/memcached-1.4.22.tar.gz 安装 1. 先安装libevent(memcached依赖libevent): tar zxvf libevent-2.0.2