Original Post: http://anothermysqldba.blogspot.com/2013/04/nosql-php-memcache-innodb-mysql.html
现在的MySQL 5.6已经出了一小会儿, …
表示 进入内容 1 去 3
Apr
30
2013
Feb
01
2013
Redis与Memcached的比较
1.网络IO模型
Memcached是多线程,非阻塞IO复用的网络模型,分为监听主线程和worker子线程,监听线程监听网络连接,接受请求后,将连接描述字pipe
传递给worker线程,进行读写IO, 网络层使用libevent封装的事件库,多线程模型可以发挥多核作用,但是引入了cache
coherency和锁的问题,比如,Memcached最常用的stats
命令,实际Memcached所有操作都要对这个全局变量加锁,进行计数等工作,带来了性能损耗。
…
Jan
08
2013
php memcached Consistent Hashing
php连接memcache服务器的时候,最初我们只是按照业务来划分不同的memcache服务器。
后来随着流量的增加, 有些业务需要更多台memcache服务器做缓存的负载均衡。
为了增加缓存的命中率,最好是在均衡分布的基础上保证同一个key只对应一台cache服务器(貌似这个说法不太专业…)。
算法也很简单,假设cache服务器数量为N, 我们只要把key转化成int或者long(比如做个md5),然后mod
N就可以了。
恩,看起来很正常,很靠谱。
直到有一天,其中一台cache服务器挂了。于是mod N 变成了 mod N-1。
代价?由于N变成了N-1,mod之后,大量的key对应的cache服务器都发生了变化, 缓存命中率大幅度降低。
添加新服务器的时候,也会有这种现象存在。
看个简单的例子, 现在有1 2 3 4四份数据, …
表示 进入内容 1 去 3