Memcached 分布式缓存系统部署与调试 推荐
2012-01-07 21:08
405 查看
Memcache 分布式缓存系统部署与调试
工作机制:通过在内存中开辟一块区域来维持一个大的hash表来加快页面访问速度,和数据库是独立的;目前主要用来缓存数据库的数据;存放在内存的数据通过LRU算法进行淘汰出内存;同时可以通过删除和设置失效时间来淘汰存放在内存的数据。
一 memcache 安装
1 memcached 服务器安装
1.1 memcached 官方网站 http://memcached.org/
目前最新稳定版本 memcached-1.4.10.tar.gz
1.2 memcached 依赖libevent库,在安装memcached之前检查下系统是否已安装libevent库,如果没有则需要先安装 libevent
libevent 官方网站 http://libevent.org/
目前最新稳定版本 libevent-2.0.16-stable
libevent是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制
1.3 安装 libevent 与 memcached
1.4 简单测试
2 memcache 客户端安装
2.1 php memcache 客户端
http://pecl.php.net/package/memcache
目前最新稳定版本 memcache-2.2.6.tgz
#memcache.php 测试文件
#php调用memcache
2.2 .net memcache 客户端
http://blog.csdn.net/xiaoyong322/article/details/6544027 http://code.google.com/p/memcached/wiki/Clients
二 memcache 安装shell脚本与安装包
1 memcached 安装脚本
2 memcached 服务脚本
3 memcached 安装包
三 memcached命令参数说明
四 memcached 服务器调试
telnet到memcache服务器,如:telnet 10.0.1.252 11211
stats 查看基本信息
stats items 可以看到出现 很多的items行
stats cachedump 1 0(3是items后面的数字,0表示显示所有的)
get key(key 为 item后面的字符串即键)
扩展
Memcache协议中文版
结束
memcached 节省了磁盘读写、数据库连接、Sql解析资源;它是使用内存来管理数据的,所以它可以提供比直接读取数据库更好的性能。在大型系统中,访问同样的数据是很频繁的,memcached可以大大降低数据库压力。
memcached 也经常作为服务器之间数据共享的存储媒介,例如在web集群下session可以保存在memcached中,被多个应用共享。
memcached 是将数据放在内存中,不是持久化存储,一旦服务器重启,数据将会丢失。
工作机制:通过在内存中开辟一块区域来维持一个大的hash表来加快页面访问速度,和数据库是独立的;目前主要用来缓存数据库的数据;存放在内存的数据通过LRU算法进行淘汰出内存;同时可以通过删除和设置失效时间来淘汰存放在内存的数据。
一 memcache 安装
1 memcached 服务器安装
1.1 memcached 官方网站 http://memcached.org/
目前最新稳定版本 memcached-1.4.10.tar.gz
1.2 memcached 依赖libevent库,在安装memcached之前检查下系统是否已安装libevent库,如果没有则需要先安装 libevent
libevent 官方网站 http://libevent.org/
目前最新稳定版本 libevent-2.0.16-stable
libevent是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制
1.3 安装 libevent 与 memcached
# tar zxvf libevent-2.0.16-stable.tar.gz # cd libevent-2.0.16-stable # ./configure --prefix=/usr/local/libevent # make && make install # tar zxvf memcached-1.4.10.tar.gz # cd memcached-1.4.10 # ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/ # make && make install
1.4 简单测试
# /usr/local/memcached/bin/memcached -u root -d -m 200 -l 127.0.0.1 -p 11211 -P /var/run/memcached.pid # ps aux | grep memcache | grep -v 'grep' root 8979 0.0 0.2 64732 1072 ? Ssl 12:03 0:00 /usr/local/memcached/bin/memcached -u root -d -m 200 -l 127.0.0.1 -p 11211 -P /var/run/memcached.pid # lsof -i :11211 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME memcached 8999 root 26u IPv4 12244 TCP one.t.com:11211 (LISTEN) memcached 8999 root 27u IPv4 12245 UDP one.t.com:11211
2 memcache 客户端安装
2.1 php memcache 客户端
http://pecl.php.net/package/memcache
目前最新稳定版本 memcache-2.2.6.tgz
# tar zxvf memcache-2.2.6.tgz # cd memcache-2.2.6 # /usr/local/php/bin/phpize # ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config # make && make install Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/ # vim /etc/php.ini 然后修改php.ini extension_dir = "./" 修改为 extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/" 并添加一行 extension=memcache.so # /etc/init.d/php-fpm restart
#memcache.php 测试文件
<? $memcache = new Memcache; //创建一个memcache对象 $memcache->connect('localhost', 11211) or die ("Could not connect"); //连接Memcached服务器 $memcache->set('key', 'test'); //设置一个变量到内存中,名称是key 值是test $get_value = $memcache->get('key'); //从内存中取出key的值 echo $get_value; ?> 输出test,表示搭建成功 !
#php调用memcache
2.2 .net memcache 客户端
http://blog.csdn.net/xiaoyong322/article/details/6544027 http://code.google.com/p/memcached/wiki/Clients
二 memcache 安装shell脚本与安装包
1 memcached 安装脚本
2 memcached 服务脚本
3 memcached 安装包
三 memcached命令参数说明
/usr/local/memcached/bin/memcached -d -u root -m 6144 -l 10.10.10.1 -p 11211 -c 100000 -P /var/run/memcached.pid -p 监听的端口 -l 连接的IP地址, 默认所有ip地址 -d start 启动memcached服务 -u 以的身份运行 (仅在以root运行的时候有效) -m 最大内存使用,单位MB;默认64MB -p 监听 TCP port number;默认 11211 -c 最大同时连接数,默认是1024 -P memcache PID文件, 需要使用 -d 参数 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags默认是48 -h 显示帮助
四 memcached 服务器调试
telnet到memcache服务器,如:telnet 10.0.1.252 11211
stats 查看基本信息
stats items 可以看到出现 很多的items行
stats cachedump 1 0(3是items后面的数字,0表示显示所有的)
get key(key 为 item后面的字符串即键)
#memcached server 1 $ telnet 10.10.10.1 11211 Trying 10.10.10.1... Connected to 10.10.10.1. Escape character is '^]'. stats STAT pid 1750 STAT uptime 106479 STAT time 1325943604 STAT version 1.4.10 STAT libevent 2.0.16-stable STAT pointer_size 64 STAT rusage_user 42.595524 STAT rusage_system 140.332666 STAT curr_connections 1531 STAT total_connections 1057087 STAT connection_structures 1874 STAT reserved_fds 20 STAT cmd_get 33790491 STAT cmd_set 1557865 STAT cmd_flush 0 STAT cmd_touch 0 STAT get_hits 30863261 STAT get_misses 2927230 STAT delete_misses 157 STAT delete_hits 186 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT touch_hits 0 STAT touch_misses 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 8488077314 STAT bytes_written 173942242454 STAT limit_maxbytes 6442450944 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 9 STAT hash_power_level 19 STAT hash_bytes 4194304 STAT hash_is_expanding 0 STAT expired_unfetched 31545 STAT evicted_unfetched 0 STAT bytes 1309377867 STAT curr_items 404976 STAT total_items 1557865 STAT evictions 0 STAT reclaimed 47812 #memcached server 2 # telnet 10.0.1.252 11211 Trying 10.0.1.252... Connected to 10.0.1.252 (10.0.1.252). Escape character is '^]'. stats items STAT items:1:number 1 STAT items:1:age 10975 STAT items:1:evicted 0 STAT items:1:evicted_nonzero 0 STAT items:1:evicted_time 0 STAT items:1:outofmemory 0 STAT items:1:tailrepairs 0 STAT items:1:reclaimed 0 STAT items:1:expired_unfetched 0 STAT items:1:evicted_unfetched 0 END stats cachedump 1 0 ITEM key [4 b; 1325927086 s] END get key VALUE key 0 4 test END
扩展
Memcache协议中文版
结束
memcached 节省了磁盘读写、数据库连接、Sql解析资源;它是使用内存来管理数据的,所以它可以提供比直接读取数据库更好的性能。在大型系统中,访问同样的数据是很频繁的,memcached可以大大降低数据库压力。
memcached 也经常作为服务器之间数据共享的存储媒介,例如在web集群下session可以保存在memcached中,被多个应用共享。
memcached 是将数据放在内存中,不是持久化存储,一旦服务器重启,数据将会丢失。
相关文章推荐
- Memcached 分布式缓存系统部署与调试
- Memcached:高性能分布式对象缓存系统 推荐
- 分布式内存缓存系统memcached的安装配置及基本命令
- 高性能的分布式内存对象缓存系统-Memcached简介
- 分布式缓存系统Memcached简介与实践 基于 .NET
- 分布式缓存系统Memcached简介
- 分布式缓存系统Memcached
- 分布式缓存系统 Memcached 工作线程初始化
- 分布式缓存系统Memcached简介与实践
- 分布式缓存系统Memcached简介与实践
- 分布式缓存系统Memcached简介与实践
- 分布式缓存系统 Memcached(二)——数据存储slab与hashtable
- 采用Tokyo Tyrant构建兼容Memcached协议、支持故障转移的分布式DB缓存【推荐64位环境】
- 分布式缓存系统 Memcached 【转载】
- 分布式缓存系统 Memcached 入门
- 分布式缓存系统Memcached简介与实践
- 分布式缓存系统 Memcached 【转载】
- 分布式缓存系统 Memcached 内存管理机制
- 分布式缓存系统Memcached简介与实践
- 分布式缓存系统之Memcached