`
hongtoushizi
  • 浏览: 360425 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Linux_Memcached_Memcachedb_Memcacheq

阅读更多

 

memcached是高性能的分布式内存缓存服务器。

基于libevent的事件处理
libevent是一套跨平台的事件处理接口的封装

软件下载-------------
libevent
官网:http://monkey.org/~provos/libevent/
Memcached
官网:http://danga.com/memcached/download.bml


先安装 libevent
[======Libevent=====]

tar -xvf libevent-1.4.12-stable.tar.gz -C /usr/local/
cd /usr/local/libevent-1.4.12
./configure && make && make install

再安装 Memcached主程序
[======Memcached=====]

tar -xvf memcached-1.4.1.tar.gz -C /usr/local/
cd /usr/local/memcached-1.4.1
./configure --prefix=/usr/local/memcached && make && make install


查看Memcached帮助信息
# /usr/local/memcached/bin/memcached -h
运行 Memcached
目标:使用11211端口、pica-用户、最大占用512M内存、1024个软连接,输出
客户端请求,以守护进程方式运行
# /usr/local/memcached/bin/memcached -d -u root -m 256 -c 1024

错误调试:
如果启动memcached时报下错:/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

解决类似问题的步骤我相信我的做法可以通用。

1. 首先 find / -name libevent-1.4.so.2 找到缺少的链接文件到底在那儿。
2. LD_DEBUG=libs /usr/local/bin/memcached -v
3. 从Debug信息中就知道程序去哪里找链接库了。我这边程序去 trying file=/usr/lib/libevent-1.4.so.2 而我的链接库的实际存储位置是 /usr/local/lib/libevent-1.4.so.2
4. 做一个软连接 ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2

如果都做了还不可以,那么执行下  " ldconfig "


Memcached 运行关注基本选项
-p <num> 监听的TCP端口 (缺省: 11211)
-d 以守护进程方式运行Memcached
-u <username> 运行Memcached的账户,非root用户
-m <num> 最大的内存使用, 单位是MB,缺省是 64 MB
-c <num> 软连接数量, 缺省是 1024
-v 输出警告和错误信息
-vv 打印客户端的请求和返回信息
-h 打印帮助信息
-i 打印memcached和libevent的版权信息


检查是否正常启动
# ps auxxww | grep memcached

查看状态:
# telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
stats

 

 

 

==============================================

 

 

 

Memcachedb

 

 

 

Memcachedb = memcache + Berkeley DB

memcachedb是一个由新浪网的开发人员开放出来的开源项目,给memcached分布式缓存服务器添加了Berkeley DB的持久化存储机制和异步主辅复制机制,让memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高性能读写速度,但是 不需要严格事务约束,能够被持久化保存的应用场景

安装====
memcachedb安装指南
0.下载相关文件
libevent: [url]http://monkey.org/~provos/libevent/[/url]     
berkeleyDB: [url]http://www.oracle.com/technology/products/berkeley-db/index.html[/url]
memcachedb:[url]http://code.google.com/p/memcachedb/[/url]
[======Libevent=====]
1. 先安装libevent:
# tar zxvf libevent-1.2.tar.gz
# cd libevent-1.2
# ./configure --prefix=/usr
# make
# make install

2.测试libevent是否安装成功:
# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
-rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3
-rw-r?r? 1 root root 454156 11?? 12 17:38 libevent.a
-rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3
还不错,都安装上了


[======Berkeley Db=====]
3.安装Berkeley Db
tar -zxvf Berkeley-db-4.8.24.tar.gz
#需要进入特定操作系统编译环境,更常规软件的编译有些区别
cd db-4.8.24/build_unix/
#然后才能够开始编译
../dist/configure
make && make install
#如果没有指定特殊安装路径,编译完成,需要将Berkeley Db运行库的路径添加到系统配置里面
echo "/usr/local/BerkeleyDB.4.8/lib/" >> /etc/ld.so.conf
#重载系统Ld运行库
ldconfig

[======Memcachedb=====]
4.安装memcachedb,同时需要安装中指定libevent的安装位置:
# cd /tmp
# tar -zxvf memcachedb-1.2.0.tar.gz
# cd memcachedb-1.2.0
# ./configure --prefix=/usr/local/memcachedb --enable-threads --with-bdb=/usr/local/BerkeleyDB.4.8 && make && make install
# make
# make install
如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。
安装完成后会把memcachedb放到 /usr/local/bin/memcachedb ,

5.测试是否成功安装memcachedb:
# ls -al /usr/local/memcachedb/bin/memcachedb
-rwxr-xr-x 1 root root 212459 09-27 16:07 /usr/local/memcachedb/bin/memcachedb

6.启动memcachedb

/usr/local/memcachedb/bin/./memcachedb -p21211 -d -r -u root -H /data/mdb_21211 -m 1024 -N -t 4


检查是否正常启动
# ps auxxww | grep memcachedb




两种启动方式:

#第一种,单进程模式,读写合并模式,即不做辅拷贝,即读又写,不做冗余备份
用于对可用性要求不是太高的场合,例如帖子点击数,回复数。只要定期备份数据,也能提供相当稳定的服务
cd /usr/local/memcachedb/bin/
./memcachedb -p21211 -d -r -u root -H  /data/mdb_11211  -N

#第二种,一主带多从的用法 ,读写分离/备份模式
用于对可用性要求比较高的场合。master可以提供读写服务,slave提供只读服务,如果master服务中断,可以马上启用slave作为master使用,服务中断时间很短

#主服务器(read&write) 192.168.0.1 读写监听 11211 ,同步通过31211的端口完成,不占用繁忙的主服务端口
cd /usr/local/memcachedb/bin/
./memcachedb -p21211 -d -r -u root -H  /data/mdb_11211_m -N -R 127.0.0.1:31211 -M

# 辅服务器(read-only) 192.168.0.2  只读监听 21212,从192.168.0.1 的 31211端口同步数据,同时再开一个31212端口对外提供数据同步服务

memcachedb -p21212 -d -r -u root -H  /data/mdb_11211_from_16801_s -O 192.168.0.1:31211 -R 192.168.0.2:31212 -S
memcachedb -p21212 -d -r -u root -H  /data/mdb_11211_from_16801_s -O 192.168.0.1:31211 -R 192.168.0.2:31212 -S


日志清理
    有两种方法可以清理memcachedb的日志
1、利用memcache协议清理日志
   echo db_archive|nc 127.0.0.1 21201   
2、利用berkeleydb的命令行清理日志
   /usr/local/BerkeleyDB.4.7/bin/db_archive -d -h home

备份及恢复
 备份
    /usr/local/BerkeleyDB.4.7/bin/db_hotbackup [-c] -h home -b backup_dir
 正常恢复
    /usr/local/BerkeleyDB.4.7/bin/db_recover -f -h home
 灾难性恢复,新增一个c参数
    /usr/local/BerkeleyDB.4.7/bin/db_recover -cf -h home

监控
  使用memcache协议的stats, stats bdb, stats rep指令,例如
  echo stats|nc 127.0.0.1 21201
  标准的bdb工具db_stat

故障恢复
  master-slave结构的memcachedb,当master当机的时,可采用以下步骤恢复
  1、停止slave
  2、将slave作为master跑起来
  memcachedb -p21201 -d -r -u root -H ./mdb_11211_m -N -R 127.0.0.1:31201 -M
  3、有充裕的时间恢复原master
 
========================================

 

 

 

Memcacheq

 

 

安装memcacheQ
MEMCACHEQ -------------------------------------------------------------------------------------

首先安装libevent
下载地址: <http://monkey.org/~provos/libevent/>
wget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz
#tar xvzf libevent-1.4.9-stable.tar.gz
#cd libevent-1.4.9-stable
#./configure
#make
#sudo make install


安装Berkeley DB
Berkeley DB 4.7 or later
下载地址: <http://www.oracle.com/database/berkeley-db/db/index.html>
wget http://download.oracle.com/berkeley-db/db-4.7.25.tar.gz

#tar xvzf db-4.7.25.tar.gz
#cd db-4.7.25/
#cd build_unix/
#../dist/configure
#make
#sudo make install

vi /etc/ld.so.conf:
/usr/local/lib
/usr/local/BerkeleyDB.4.7/lib
wq

执行--  ldconfig


安装   MemcacheQ
下载地址:< http://code.google.com/p/memcacheq/downloads/list >
wget http://memcacheq.googlecode.com/files/memcacheq-0.1.1.tar.gz

#tar xvzf memcacheq-0.1.1.tar.gz
#cd memcacheq-0.1.1
#./configure --prefix=/usr/local/memcacheq --enable-threads --with-libevent=/usr/local/lib --with-bdb=/usr/local/BerkeleyDB.4.7
make && make install

启动
首先创建默认库文件
mkdir -p /data1/memcacheq
/usr/local/memcacheq/bin/./memcacheq -d -r -H /data1/memcacheq -u root -N -v -L 1024 -B 1024 > /data1/my_error.log 2>&1

查看帮助
/usr/local/memcacheq/bin/./memcacheq –h

 

转载自: http://www.verydemo.com/demo_c167_i57018.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics