版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan
配合memcache监控程序,测试memcache分布式,文章参考了网上某位牛人的文章。
测试crc32 fnv standard consistent 组合情况下的item分布情况及添加新服务器对现有item命中率的影响。
先开memcached服务器
#!/bin/bash
##############################
# MyZ 2009-07-12
# File:memcached_12.sh
##############################
port=11212
for (( i=11212; i<11224; i++ ))
do
/usr/local/bin/memcached -u root -p $i -m 10 &
done
./memcached.sh
结论
使用memcache这种客户端下的方法保证分配均匀的基础下,存货率做高的是crc32+ consistent。
测试结果
//crc32 standard
192.168.1.101:11212 => items:9812
192.168.1.101:11213 => items:10153
192.168.1.101:11214 => items:9895
192.168.1.101:11215 => items:9985
192.168.1.101:11216 => items:10206
192.168.1.101:11217 => items:9958
192.168.1.101:11218 => items:10159
192.168.1.101:11219 => items:9941
192.168.1.101:11220 => items:9924
192.168.1.101:11221 => items:9967
192.168.1.101:11222 => items:0%
192.168.1.101:11223 => items:0%

//fnv standard
192.168.1.101:11212 => items:9911
192.168.1.101:11213 => items:9978
192.168.1.101:11214 => items:9928
192.168.1.101:11215 => items:10053
192.168.1.101:11216 => items:9952
192.168.1.101:11217 => items:10055
192.168.1.101:11218 => items:10013
192.168.1.101:11219 => items:10089
192.168.1.101:11220 => items:9947
192.168.1.101:11221 => items:10074
192.168.1.101:11222 => items:0
192.168.1.101:11223 => items:0

//crc32 consistent
192.168.1.101:11212 => items:12466
192.168.1.101:11213 => items:10175
192.168.1.101:11214 => items:8436
192.168.1.101:11215 => items:9118
192.168.1.101:11216 => items:11757
192.168.1.101:11217 => items:9208
192.168.1.101:11218 => items:10343
192.168.1.101:11219 => items:8417
192.168.1.101:11220 => items:8716
192.168.1.101:11221 => items:11364
192.168.1.101:11222 => items:0
192.168.1.101:11223 => items:0

//fnv consistent
192.168.1.101:11212 => items:9014
192.168.1.101:11213 => items:13178
192.168.1.101:11214 => items:10053
192.168.1.101:11215 => items:4302
192.168.1.101:11216 => items:10875
192.168.1.101:11217 => items:4906
192.168.1.101:11218 => items:15593
192.168.1.101:11219 => items:9993
192.168.1.101:11220 => items:8093
192.168.1.101:11221 => items:13993
192.168.1.101:11222 => items:0
192.168.1.101:11223 => items:0

用于检测memcache的程序配置部分
for ($i = 11212; $i < 11222; $i++) {
$MEMCACHE_SERVERS[] = '192.168.1.101:'.$i; // add more as an array
}
$MEMCACHE_SERVERS[] = '192.168.1.101:11222'; // add more as an array
$MEMCACHE_SERVERS[] = '192.168.1.101:11223'; // add more as an array
测试代码
-EOF
分享到:
相关推荐
memcached完全可以用到其他地方 比如分布式数据库,分布式计算等领域。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。 2.Memcached工作机制 通过在内存中开辟一块区域来维持一个大的hash表...
3. **LRU(Least Recently Used)策略**:当内存空间不足时,Memcached会根据最近最少使用的数据进行淘汰,以保持内存的有效利用率。 4. **多线程模型**:Memcached采用多线程模型处理客户端请求,每个线程负责一个...
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached 基于一个存储键/值对...
memcached 还支持一致性 Hash 算法,以确保数据的分布式存储。 memcached 的应用场景 memcached 广泛应用于各种 Web 应用程序中,包括社交媒体、电商平台、博客平台等。memcached 可以用于缓存用户数据、文章数据...
Memcached分布式 1. 一致性Hash:Memcached使用一致性Hash算法来实现分布式缓存。 2. 集群:Memcached支持集群模式,多台服务器组成一个集群,提供高可用性和高性能。 Memcached客户端 1. Memcached客户端:...
Memcached分布式:一致性Hash 在分布式环境中,为了实现数据的高效分发,Memcached使用了一致性哈希算法。一致性哈希能够确保即使在网络中添加或删除节点时,数据迁移也尽可能少。 #### 5. Key-Value系统的比较 ...
Memcached分布式:一致性Hash 在分布式环境中,Memcached通常使用一致性哈希算法来解决节点间的数据分布问题。一致性哈希通过虚拟节点和哈希环的概念,实现了数据的均匀分布和高效的负载均衡,同时减少了节点加入...
Memcached 是一个自由、开源、高性能、分布式内存对象缓存系统,旨在通过减轻数据库负载来使动态 Web 应用程序提速。下面是 Memcached 源码剖析笔记的知识点总结: 1. 背景 Memcached 的出现是为了解决动态 Web ...
【标题】"memcached-笔记资料"涉及到的核心知识点是分布式内存缓存系统——Memcached,它是一个高性能、轻量级的缓存解决方案,主要用于减轻数据库的负载,提高Web应用的性能。 【描述】"memcached-笔记资料"暗示了...
1. **内存中的hash表**:Memcached在内存中开辟了一块区域来维持一个大的hash表,用来存储各种格式的数据。 2. **独立于数据库**:Memcached与数据库是独立的,不依赖于数据库的存在。 3. **多主机支持**:Memcached...
3. **Hash机制**:包含哈希函数与冲突解决策略,以及哈希表的主要操作函数。 4. **Slab内存管理机制**:Memcached采用slab分配器管理内存,每个slab class负责固定大小的对象,通过LRU算法实现缓存置换。 5. **...
3. **分布式特性**:memcached通过一致性哈希策略实现数据的分布式存储,可以在多台服务器之间分发负载,确保高可用性和可扩展性。 4. **缓存策略**:包括LRU(Least Recently Used)最近最少使用算法,用于在内存...
通过合理的缓存策略和有效的数据管理,Memcached能为你的应用程序提供高速的数据访问和优秀的性能优化。在实际开发中,还要注意监控Memcached的性能和容量,以及适时调整其配置以满足不断变化的业务需求。
在构建分布式系统时,Session共享是一个关键问题,特别是在使用多种服务器技术如Nginx、Tomcat和Memcached的环境中。本文将深入探讨如何利用这些组件实现跨服务器的Session共享,以确保用户在登录后能够在整个系统中...
$memcached->setOption(Memcached::OPT_HASH, Memcached::HASH_KETAMA); ``` **6. 淘宝月光宝盒架构** 淘宝的月光宝盒(MoonBox)是一种优化Memcached集群的方案,它结合了多级缓存、热点数据预热、动态扩缩容和...
TTServer通过hash策略与复制功能结合,确保了数据的安全性,而B+ Tree结构则提供了更高效的读写缓存能力,以确保数据的稳定性。" 【标签】: "memcached" "TT" "TC" "TTserver" 【正文】: 1. **Memcached**: - **...
memcached提供了一个简单而强大的命令行客户端,用于测试和管理缓存。同时,它还支持多种编程语言的客户端库,如PHP、Python、Java、Ruby等,方便开发者在应用程序中集成memcached。 **7. 缓存策略与失效** ...
最后,提供的压缩包文件`nginx+tomcat+memcached`可能包含了上述所有组件的配置文件、jar包和安装脚本,帮助用户快速搭建和测试这样的系统。在部署时,务必根据实际网络环境和服务器配置进行适当的调整,确保所有...
一致性哈希算法(Consistent Hashing)是一种常用于分布式系统中的数据分片策略,它有效地解决了数据在多台服务器间均匀分布的问题,同时减少了因节点加入或离开时的数据迁移成本。 首先,一致性哈希的基本原理是将...