一,关系型数据库的瓶颈(mysql, oracle);
1.对数据库的高并发读写;
2.对海量数据的处理;
二,Memcached:是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度和可扩展性;
特点: 协议简单;基于libevent的事件处理;内置内存存储方式;采用不互相通信的分布式; 服务器停止之后,存储的数据丢失;使用LRU算法删除缓存;
三,centos操作memcached命令;
1.启动 service memcached start | stop | status | restart | reload
进程:netstat -antp | grep memcached ;
2.修改端口等参数 vim /etc/init.d/memcached
四,基本储存操作:
$mc = new memcache();
$mc->connect('127.0.0.1', 11211);
$mc->set('key', 'value', 0, 10);
$val = $mc->get('key');
var_dump($val);
$mc->delete('key'); //删除数据
$mc->flush(); //强制刷新全部缓存
$mc->close(); //断开与mamcached服务器的链接
五,高并发的支持:
六,使用Slab分配的算法保持数据: 减少生成内存碎片,提高内存使用效率;
默认储存不大于1M的数据,修改(POWER_BLOCK宏设置为更大数);
七,Memcache 多线程模型(队列算法)
memcache是一个多线程的缓存服务器程序:
主线程(main thread) :接收客户端链接,并把连接分配给工作线程处理
工作线程(worker thread):处理客户端的连接请求;
八,Memcache 分布式布置方案
8.1 普通的Hash分布
8.2 一致性的HASH分布
具体算法和做法 以后找机会探究