Linux下Memcached的使用

1.       安装文件下载

1.1下载memcached服务器端安装文件

版本: memcached-1.4.2.tar.gz

下载地址:http://www.danga.com/memcached/download.bml

1.2下载libevent

memcached需要用到socked,依赖此安装文件

官网:http://www.monkey.org/~provos/libevent/

2.       安装

2.1 确认是否已经安装了libevent

一般情况下linux系统可能默认已经安装libevent,可以通过以下命令确认是否已经安装

执行命令:rpm -qa|grep libevent查看系统是否带有该安装软件

如果有执行以下命令删除:rpm -e libevent-1.1a-3.2.1 --nodeps(由于系统自带的版本旧,忽略依赖删除)

2.2    安装libevent:

分别把memcached和libevent下载回来,放到/tmp目录下# tar zxvf libevent-1.2.tar.gz。安装文件拷贝完成后进行安装操作,执行以下命令,命令中的文件夹名称和安装软件名称根据实际情况修改

# tar zxvf libevent-1.2.tar.gz

# cd libevent-1.2

# ./configure –prefix=/usr

# make

# make install

测试libevent是否安装成功

执行命令,# ls -al /usr/lib | grep libevent,出现下图,则说明安装成功

或者执行命令#cd /usr/local/libevent/lib,检查如果有libevent-1.3c.so.1、libevent-1.3c.so.1.0.3、libevent.a、libevent.la、ibevent.so这几个文件存在,说明安装成功

2.3安装memcached

安装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

执行命令# ls -al /usr/local/bin/mem*,出现以下界面则说明安装成功

或者执行命令#cd /usr/local/memcached/bin,如果memcached、memcached-debug这2个文件存在,说明安装成功

3.       启动Memcached服务

3.1启动Memcache的服务器端

# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.141.64 -p 12000 -c 256 -P /tmp/memcached.pid

或者:

./memcached -help

./memcached -d -m 1024 -u root -p 11211 -c 1024 -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

3.2测试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

至此Memcached安装成功!

3.3结束Memcache进程

# kill `cat /tmp/memcached.pid`

3.4把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,想开机自动启动的话,只需在/etc/rc.d/rc.local中加入一行,下面命令/usr/local/memcached/bin/memcached -d -m 10 -p 12000 -u apache -c 256

上面有些东西可以参考一下:即,ip不指定时,默认是本机,用户:最好选择是:apache 或 deamon,这样,也就是属于哪个用户的服务,由哪个用户启动。

3.5Memcached说明

1)Memcached 操作:

telnet localhost 11334

set foo 0 0 3

bar

STORED

get foo

VALUE foo 0 3

Bar

quit

2)Memcache命令:

存储命令: set/add/replace/append/prepend/cas

获取命令: get/gets

其他命令:delete/stats等

3)Shell操作memcache

(1)数据存储(假设key为foo,value为123)

printf "set foo 0 0 3\r\n123\r\n" | nc 127.0.0.1 11334

STORED

(2)数据取回(假设key为foo)

printf "get foo\r\n" | nc 127.0.0.1 11334

VALUE foo 0 3

123

END

(3)数值增加1(假设key为foo,并且value为正整数)

printf "incr foo 1\r\n" | nc 127.0.0.1 11334

124

(4)数值减少3(假设key为foo,并且value为正整数)

printf "decr foo 3\r\n" | nc 127.0.0.1 11334

121

(5)数据删除(假设key为foo)

printf "delete foo\r\n" | nc 127.0.0.1 11334

DELETED

(6)查看Memcached状态

printf "stats\r\n" | nc 127.0.0.1 11334

STAT pid 22563

STAT uptime 90706

(7)模拟top命令,查看Memcached状态:

watch "printf 'stats\r\n' | nc 127.0.0.1 11334"

watch "echo stats | nc 127.0.0.1 11334"

4.       常见问题

4.1启动memcached时经常不能发现libevent.so

可以通过以下命令检查:

进入/usr/local/memcached-1.4.2/bin目录

LD_DEBUG=help ./memcached -v

LD_DEBUG=libs ./ memcached -v

解决方法:

ln -s /usr/local/libevent-1.4/lib/libevent-1.4.so.2 /lib64/libevent-1.4.so.2

4.2如果启动Memcached服务报错

安装完成后的memcached在 /usr/local/bin/memcached,这时运行memcached -m 500 -p 11333, 有可能会出现:

memcached:: error while loading shared libraries: libevent-1.2.so.1: cannot open shared object file: No such file or directory; 这说明没有找到文件:libevent-1.2.so.1

解决方案:

[root@localhost bin]# LD_DEBUG=libs memcached -v

[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服务了。

5.       参考文档

1)http://blog.163.com/zqy216_2008/blog/static/41193718201071111421528/

2)ttp://www.cnblogs.com/zgx/archive/2011/08/10/2134097.html

3)http://my.oschina.net/flynewton/blog/9694

4)http://blog.csdn.net/zj7758/article/details/6200641

5)http://www.iteye.com/topic/1123037

6)http://www.iteye.com/wiki/blog/1067387

分布式内存对象缓存系统Memcached-Linux下使用的更多相关文章

  1. 高性能的分布式内存对象缓存系统Memcached

    Memcached概述   什么是Memcached? 先看看下面几个概念: Memory:内存存储,不言而喻,速度快,对于内存的要求高,不指出的话所缓存的内容非持久化.对于CPU要求很低,所以常常采 ...

  2. Python并发编程-Memcached (分布式内存对象缓存系统)

    一.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...

  3. 分布式内存对象缓存系统Memcached-概述

    全面掌握Memcached 1.       概述 Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,是为了加快网站http://www. ...

  4. MemCache分布式内存对象缓存系统

    MemCache超详细解读 MemCache是一个自由.源码开放.高性能.分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而 ...

  5. 分布式内存对象缓存 memcached

    分布式内存对象缓存 许多Web 应用程序都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示.但随着数据量的增大,访问的集中,就会出现REBMS的负担加重,数据库响应恶化,网站显示延迟等 ...

  6. Memcache 内存对象缓存系统

    简介: Memcached 是一个高性能的分布式内存存储对象缓存系统,用于动态 WEB 应用以减轻数据库负载. 它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据库驱动网站的速度. ...

  7. [Memcached]分布式缓存系统Memcached在Asp.net下的应用

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached ...

  8. 分布式缓存系统Memcached在Asp.net下的应用

    Memcached 是一个高性能的分布式内存对象缓存系统.用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来降低读取数据库的次数,从而提高动态.数据库驱动站点的速度. Memcache ...

  9. 分布式缓存系统 Memcached 快速入门

    Memcached介绍   官网地址      Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提 ...

随机推荐

  1. php 文件上传类 实例分享

    最近在研究php上传的内容,找到一个不错的php上传类,分享下. <?php /** * 文件上传类 * class: uploadFile * edit: www.jbxue.com */ c ...

  2. JPG各种输入框样式

    输入框景背景透明:<input style="background:transparent;border:1px solid #ffffff"> 鼠标划过输入框,输入框 ...

  3. ASP.NET Core 1.0

    .NET Core dotnet 命令大全:http://www.cnblogs.com/linezero/p/dotnet.html http://www.cnblogs.com/Wddpct/p/ ...

  4. 从零开始学ios开发(十七):Storyboards(上)

    在开始这章之前,先做个说明,从这篇开始,我所使用的xcode更新成了最新的版本,版本是4.6.1(4H512),如下: 大家可以打开自己电脑上的App Store,然后搜索xcode,第一个出现的就是 ...

  5. 文字沟通工具使用SignalR,跨域例子源代码

    其他网站已经有很多关于SignalR的介绍了.这里不多介绍. 安装:Install-Package Microsoft.AspNet.SignalR -Version 1.1.4 参考自:http:/ ...

  6. 清橙A1363. 水位 - 清华大学2012年信息学优秀高中学子夏令营

    问题描述 有一个正方形的地区,该地区特点鲜明:如果把它等分为N×N个小正方形格子的话,在每个格子内的任意地点的地表高度是相同的,并且是一个0到M之间的整数.正方形地区的外部被无限高的边界包围. 该地区 ...

  7. java 并发编程

    闭锁 一种可以延迟线程的进度直到其到达终止状态.可以用来确保某些活动直到其他活动都完成后才继续执行 例如: 确保某个计算在其需要的所有资源都被初始化了之后才继续执行. 确保某个服务在其他依赖的服务都启 ...

  8. php 安全处理方案

    Safe::mysqlSafe(); sql注入,升级5.3.6以上版本php 方案一:将所有请求中所有数据(get/post/cookie)实现mysql_escape_string进行安全处理. ...

  9. c++ 哪些自定义的数据类型

    http://www.cnblogs.com/ShaneZhang/archive/2013/06/21/3147648.html 这些数据类型是 C99 中定义的,具体定义在:/usr/includ ...

  10. Windows Phone 8.1 与 Windows Phone 8.1 Silverlight区别

    以下讨论基于当前的WP8 APP, 一.Windows Phone 8 app:旧的WP8程序:不需要迁移: 二.Windows Phone 8.1 app新的使用Windows Runtime 的程 ...