分布式内存对象缓存系统Memcached-Linux下使用
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下使用的更多相关文章
- 高性能的分布式内存对象缓存系统Memcached
Memcached概述 什么是Memcached? 先看看下面几个概念: Memory:内存存储,不言而喻,速度快,对于内存的要求高,不指出的话所缓存的内容非持久化.对于CPU要求很低,所以常常采 ...
- Python并发编程-Memcached (分布式内存对象缓存系统)
一.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...
- 分布式内存对象缓存系统Memcached-概述
全面掌握Memcached 1. 概述 Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,是为了加快网站http://www. ...
- MemCache分布式内存对象缓存系统
MemCache超详细解读 MemCache是一个自由.源码开放.高性能.分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而 ...
- 分布式内存对象缓存 memcached
分布式内存对象缓存 许多Web 应用程序都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示.但随着数据量的增大,访问的集中,就会出现REBMS的负担加重,数据库响应恶化,网站显示延迟等 ...
- Memcache 内存对象缓存系统
简介: Memcached 是一个高性能的分布式内存存储对象缓存系统,用于动态 WEB 应用以减轻数据库负载. 它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据库驱动网站的速度. ...
- [Memcached]分布式缓存系统Memcached在Asp.net下的应用
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached ...
- 分布式缓存系统Memcached在Asp.net下的应用
Memcached 是一个高性能的分布式内存对象缓存系统.用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来降低读取数据库的次数,从而提高动态.数据库驱动站点的速度. Memcache ...
- 分布式缓存系统 Memcached 快速入门
Memcached介绍 官网地址 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提 ...
随机推荐
- php中url传递中文字符,特殊危险字符的解决方法
php中的urldecode,base64_encode函数然后再结合自己写的替换函数来进行安全传递url中文字符,特殊危险字符. 需要在url中传递中文字符或是其它的html等特殊字符,似乎总会有各 ...
- php中each()与list()函数
<?php $fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');reset($fruit); ...
- PHP流程控制语句
流程控制语句分为两种(自己学到的就有俩不过在网上看还有两种) 1:条件控制语句即(if, if else , elseif , switch case) if语句不多说了,基本上大家都知道.if el ...
- ECSHOP订单自动确认
1.运行sql代码,生成数据库 CREATE TABLE `ecs_order_auto_confirm` ( `id` INT() UNSIGNED NOT NULL AUTO_INCREMENT, ...
- jdbc 连接 mysql 获取 数据集 条数
package nona; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; im ...
- Oracle重建表索引及手工收集统计信息
Oracle重建所有表的索引的sql: SELECT 'alter index ' || INDEX_NAME || ' rebuild online nologging;' FROM USER_IN ...
- Swift学习:闭包(Closures)
/* 闭包(Closures)* 闭包是自包含的功能代码块,可以在代码中使用或者用来作为参数传值.* 在Swift中的闭包与C.OC中的blocks和其它编程语言(如Python)中的lambdas类 ...
- z470 装黑苹果 10.92
1.分两个区,一个是mac安装区,一个是镜像拷贝区. 2.把镜像压进去. 3.安装好系统. 4.把镜像区的 extent拷贝到安装好的系统盘里去. 5.安装驱动,网盘里有.还有系统也在网盘里. 6.声 ...
- MVC的小知识点
1.MVC的前台页面编译完之后,也会生成一个前台页面类.在前天页面中加入这段代码this.GetType().Assembly.GetLocation()得到当前类所在的程序集,可以查看其所在的程序, ...
- Build Settings
Add Open Scenes 选择一个关卡,使其处于打开状态,在菜单栏选择 File -> Build Settings 打开Build Settings窗口.选择 Add Open Scen ...