您的位置:首页 > 数据库 > Memcache

第二节 Memcached之MemcachedProviders(Enyim)客户端使用及测试

2013-11-13 12:09 330 查看


第二节 Memcached之MemcachedProviders(Enyim)客户端使用及测试

本节探讨问题:

MemcachedProviders简单介绍
MemcachedProviders如何配置使用
MemcachedProviders命中率测试

MemcachedProviders是对Enyim.Caching的再次封装,并加入了客户端计数器功能以及Session数据库管理功能。上一节已经提供了下载链接,需要下载的朋友到前一节下载。Enyim也是应用比较广泛的Memcached .net客户端,和之前的Memchachedonet 客户端相比,分布式算法应该做了相应优化(具体可参照第一节的原理环节查看),这一点我们在后面的测试环节做一下验证。我们先来看一下Enyim的基本业务类图



以上为Enyim的基本业务类,开发中可直接使用MemcachedClient类+配置文件 完成基本的存取删除业务。其中ServerPool从配置文件读取服务器列表维护到MemCachedNode中,并且可以标记出哪些处于活动,哪些停止响应的服务器从而方便客户端快速找到可以正常使用的服务器。在Operation类中,可以看到Enyim已经使用了二进制协议。
二、MemcachedProviders如何配置使用
如果喜欢简洁的可以直接使用Enyim.Caching开发,我们这里使用对Enyim.Caching再次封装的MemcachedProviders,因为他用来显示的更简洁。
简单的列一下MemcachedProviders 的几个基本类
DistCache 直接CURD的数据的静态类
MemcachedCacheProvider 策略模式提供的给DistCache的业务类
CacheProviderSection 缓存配置文件节点类



上图显示了MemcachedProviders的基本业务流程,我们在使用DistCache时,他首先会从配置文件找到对应的缓存策略Providers,MemcachedCachedProvider是实现了计数器功能的一个策略,当然你也可以继承CacheProviders重写一个策略类,而该类只需要实现MemcachedClient就可实现基本的业务。MemcachedClient被实现的时候,会实现默认的ServerPool 去读取Enyim节点的服务器配置信息。很简单吧,那我们就开始测试环节的工作了。
三、MemcachedProviders命中率测试
MemcachedProviders源码是GIT上载的,GIT的项目基本上都是SVN搭建的,解压后会看到Branches(项目分支),Tags(里程),Trunk(项目主线)
我直接选了主版本Trunk的源码解决方案,新建设了一个Demo测试项目。
开始工作前我们参照上节,分别用MemcaheD Manager在3台服务器上搭了Memcached服务端



测试代码同上节一样,100条记录存取,分别3,4,5服务器测试。


View
Code
配置文件先设置3台服务器


View
Code
测试结果1:



MemcacheD Manager结果:



测试2:MemcacheD Manager清空所有服务器数据,在增加一台服务器继续测试,代码部分相同
配置文件:


View
Code
测试结果2:



测试3:再增加至5台Server
配置文件:


View
Code
测试结果:



看下工具的结果:



3次测试结果,100条记录分布在不同的Server上,Hit 100% MISS 0次。结果还是很理想的,看来Enyim改进的算法还是很优秀的,加上配置化,计数器等功能总体上优于Memcachedonet。
我们来看下MemcachedProviders计数器结果:



好了,这一节就到这里了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: