linux环境下memcache的安装

安装:
下载安装包:memcached-1.4.8.tar.gz(最新) libevent-1.4.9-stable.tar.gz(socket通信程序,它是 memcached 所依赖的异步事件通知库) 上述包都是用c写的。故在linux环境下安装,linux必须有c编译环境,目前都用gcc(最好系统自带,否则自己安装非常麻烦,特别耗时间)
命令
=============libevent 安装==================
tar –xzf  libevent-1.4.9-stable.tar.gz
cd libevent-1.4.9-stable.tar.gz
./configure –prefix=/usr
make
make install
============================================
检测一下查看是否安装:
ls -al /usr/lib | grep libevent
#显示
libevent.so -> libevent-2.0.so.5.1.2
=============memcache安装==================
tar –xzf  memcached-1.4.8.tar.gz
cd memcached-1.4.8.tar.gz
./configure –prefix=/usr
make
make install
============================================
检测是否成功安装
ls -al /usr/local/bin/mem*
#显示
/usr/local/bin/memcached


Memcache 已经安装到usr/bin目录下

启动
/usr/bin memcached –d –m 128 –l  10.10.31.79  –p 11211  -u root【注1】

-d  以守护(daemon)程序方式运行memcached 
-l   设置监听的ip地址,如果是本机,通常不设置
-p  设置监听端口,默认为11211 通常不设置
-m  设置内存大小  单位 M
-u   指定用户。当前用户为root时,可以指定用户。(不能以root用户权限启动)
-vv  用very vrebose模式启动,调试信息和错误输出到控制台
还有很多命令可以用 memcached –h 来查看

测试
telnet  server  port
这里,我用的SecureCRT ,当然还有很多客户端工具,如PuTTy;Window 自带的cmd中的telnet 也可以 ,但是容易出现乱码问题,得设置编码格式。

简介

Memcached 作为一个主要用作访问加速的不落地cache,其内存主要是使用程序上的堆内存(heap memory),而且内存一旦分配不再释放;同时为了加速对对应内存块的访问,采用了Hash桶管理内存的方式;在数据淘汰算法方面使用了LRU(最近最少使用算法)。

特点
1、 协议简单。服务器客户端的通信不使用复杂的xml等方式,采用简单基于文本行的协议。
2、 基于libevent的事件处理。
3、 内置内存处理方式
4、 Memcached不互相通信的分布式
Memcached尽管是分布式缓存服务器,但服务器端并没有分布式功能,各个memcached不会互相通信以共享缓存信息。分布式完全取决于客户端的实现。

保存数据的方法

Add  仅当存储空间中不存在键相同的数据时保存
方法:
add(“键”,值””,”期限”)   期限单位:秒

replace 仅当存储空间中存在键相同的数据时保存
方法:
replace(“key”,”value”,”time”)

set   与add 和replace不同,无论何时都保存
方法:
set(“key”,”value”,”time”)  此方法的key默认长度为250个字符

获取数据的方法
1、 get、gets
get(“key”);
gets(key);

删除数据     
delete(“key”,”阻塞时间(秒)”)
阻塞时间的作用:可以阻止该时间内,以同样的键值保存新数据,但对set无效。

注意事项
1、 不要存太大的数据,如超过1M,memcached默认是不能存超过1M的数据的,其次,过大的数据在进行序列化和反序列化的时候会浪费不少时间。
2、 Key不能包含控制字符和空白字符。可以把key进行MD5后的结果作为key
3、 找了份参考资料,写的很详细
http://www.ibm.com/developerworks/cn/java/j-memcached1



【注1】启动时报如下错误:
memcached: error while loading shared libraries:libevent-2.0.so.5: cannot
open shared object file: No such file or directory
网上解决方法1:
那就表示系統不知道xxx.so 放在哪個目錄下。
這個時候就要在/etc/ld.so.conf中加入xxx.so所在的目錄。
一般而言,有很多so檔會在/usr/local/lib這個目錄下,所以在/etc/ld.so.conf中加入/usr/local/lib這一行,可以解決此問題。
將 /etc/ld.so.conf存檔後,還要執行「/sbin/ldconfig –v」來更新一下才會生效。
根据上面的说法我是这样做的:
[root@datapro-0002 bin]# cd /etc/
[root@datapro-0002 etc]# cat ld.so.conf
include ld.so.conf.d/*.conf
发现ld.so.conf文件包含了include ld.so.conf.d目录下的所有.conf文件
于是到include ld.so.conf.d目录下新建lib.conf文件添加以下内容:
/usr/lib(libevent在该目录下)

网上解决方法2:(没有试过)
如果启动时出现“memcached: error while loading shared libraries:libevent-2.0.so.5: cannot
open shared object file: No such file or directory”之类的信息,表示memcached 找不到
libevent 的位置
所以,请先使用whereis libevent 得到位置,然后连接到memcached 所寻找的路径
首先查看,libevent 在哪里
# whereis libevent
libevent: /usr/local/lib/libevent.la /usr/local/lib/libevent.so /usr/local/lib/libevent.a
然后,再看memcached 从哪里找它
# LD_DEBUG=libs memcached -v 2>&1 > /dev/null | less
可以看到:是/usr/lib/libevent-2.0.so.5,所以,创建软链
[root@localhost tools]# ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5

【其他】
再次启动
关闭memcached :pkill memcached
检查memcached服务是否在监听<memcache监听默认端口为:11211>
echo stats | nc 127.0.0.1 11211

猜你喜欢

转载自0414.iteye.com/blog/1852190