首頁 > 資料庫 > mysql教程 > Memcache文件系统memcachefs部署和使用

Memcache文件系统memcachefs部署和使用

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-07 14:56:04
原創
1420 人瀏覽過

Memcache 文件系统memcachefs 部署和使用 介绍 memcachefs是基于FUSE的memcached文件系统,将memcache服务挂载到本地。允许查看缓存中的数据,就好像是磁盘上的文件。memcache的操作都将转换成针对普通文件般的操作。 项目地址:http://memcachefs.sourcefor

Memcache文件系统memcachefs部署和使用



介绍


memcachefs是基于FUSE的memcached文件系统,将memcache服务挂载到本地。允许查看缓存中的数据,就好像是磁盘上的文件。memcache的操作都将转换成针对普通文件般的操作。


项目地址:http://memcachefs.sourceforge.net/

 

使用场景


基于本地磁盘缓存文件都可以用memcachefs来实现,效率上比磁盘更强大。。比如session文件等等。 如果先前的session信息就存在本地磁盘上,可以直接将memcache挂载到当前session目录上,无需更改程序,完美解决。

 

安装


1.安装依赖(使用root安装)


依赖

  • FUSE 2.5 or later

  • libmemcache 1.4 or later

 

a)安装fuse-2.9.3.tar.gz

1

2

3

4

5

6

7

cd /tmp

wget http://hivelocity.dl.sourceforge.net/project/fuse/fuse-2.X/2.9.3/fuse-2.9.3.tar.gz

tar zxvf fuse-2.9.3.tar.gz

cd fuse-2.9.3

./configure

make

make install

登入後複製


b)挂载fuse内核模块

1

2

modprobe fuse

lsmod | grep "fuse"

登入後複製


c)安装libmemcache-1.4.0.rc2.tar.bz2

1

2

3

4

5

6

cd /tmp

wget http://people.freebsd.org/~seanc/libmemcache/libmemcache-1.4.0.rc2.tar.bz2

tar xvf libmemcache-1.4.0.rc2.tar.bz2

cd libmemcache-1.4.0.rc2

./configure

make

登入後複製


编译出错,输出如下:

1

2

3

4

5

6

7

memcache.c: At top level:

../include/memcache/buffer.h:73: warning: inline function 'mcm_buf_remain_off' declared but never defined

../include/memcache/buffer.h:72: warning: inline function 'mcm_buf_remain' declared but never defined

../include/memcache/buffer.h:66: warning: inline function 'mcm_buf_len' declared but never defined

../include/memcache/buffer.h:73: warning: inline function 'mcm_buf_remain_off' declared but never defined

../include/memcache/buffer.h:72: warning: inline function 'mcm_buf_remain' declared but never defined

../include/memcache/buffer.h:66: warning: inline function 'mcm_buf_len' declared but never defined

登入後複製


解决方法,参考:

http://pietercvdmlinux.blogspot.com/2012_07_01_archive.html

1

2

wget 'http://svnweb.freebsd.org/ports/head/databases/libmemcache/files/patch-fix-inline?revision=248965&view=co' -O libcache.patch

patch -p0 < libcache.patch

登入後複製


再次

1

2

make

make install

登入後複製

2.下载安装memcachefs

1

2

3

4

5

6

7

8

9

mkdir /usr/local/memcachefs

cd /tmp

wget http://jaist.dl.sourceforge.net/project/memcachefs/memcachefs/0.5/memcachefs-0.5.tar.gz

tar -zxvf memcachefs-0.5.tar.gz

cd memcachefs-0.5

./configure --prefix=/usr/local/memcachefs

make

make install

cd /usr/local/memcachefs

登入後複製

3.挂载memcached

1

2

mkdir /usr/local/cache

./bin/memcachefs 192.168.11.52:11211 /usr/local/cache #将远程的memcache挂载到本地

登入後複製


报错如下:

“./bin/memcachefs: error while loading shared libraries: libmemcache.so.0: cannot open shared object file: No such file or directory”


解决方法:

将/usr/local/lib添加到/etc/ld.so.conf

1

2

echo "/usr/local/lib" >> /etc/ld.so.conf

/sbin/ldconfig

登入後複製


查看挂载情况:

1

mount -l

登入後複製

memcachefs on /usr/local/cache type fuse.memcachefs (rw,nosuid,nodev)

使用


1.基本操作

1

2

3

4

5

6

cd /usr/local

echo "helloworld" > cache/test_key #设置一个cache数据,文件名是键,文件内容是值。等同于set key value操作。

cat cache/test_key #获取cache数据。等同于get key操作。

ll cache/ #列出所有键。注意第五列不是指大小,而是表示字符长度。第六七列时间属性。

rm cache/test_key #删除cache数据,等同于delete key操作。

mv cache/username cache/username.bak #重命名

登入後複製

2.卸载

1

2

3

# mount #查看挂载

# umount /usr/local/cache #卸载

# fusermount -u /usr/local/cache #卸载

登入後複製


3.使用telnet客户端测试


set a 0 10 3 #10s过期。10s过后,cache目录下的a文件将被删除。

get username.bak #telnet方法获取memcachfs设置的cache数据

cat cache/a #通过memcachefs获取键a数据

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

[root@test01 local]# telnet 192.168.11.52 11211

Trying 192.168.11.52...

Connected to 192.168.11.52.

Escape character is '^]'.

set a 0 10 3

aaa

STORED

get username.bak

VALUE username.bak 0 6

ryanxu

END

quit

Connection closed by foreign host.

[root@test01 local]# cat cache/a

aaa

登入後複製


相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
php - tp3.2使用memcache擴充 報錯502
來自於 1970-01-01 08:00:00
0
0
0
memcached - memcache或redis的叢集方案
來自於 1970-01-01 08:00:00
0
0
0
PHP系統如何安裝Memcache?
來自於 1970-01-01 08:00:00
0
0
0
memcached - redis、memcache、mongoDB有哪些不同?
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板