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

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

本节探讨问题:

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

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

第二节 Memcached之MemcachedProviders(Enyim)客户端使用及测试_第1张图片

以上为Enyim的基本业务类,开发中可直接使用MemcachedClient类+配置文件 完成基本的存取删除业务。其中ServerPool从配置文件读取服务器列表维护到MemCachedNode中,并且可以标记出哪些处于活动,哪些停止响应的服务器从而方便客户端快速找到可以正常使用的服务器。在Operation类中,可以看到Enyim已经使用了二进制协议。

二、MemcachedProviders如何配置使用

如果喜欢简洁的可以直接使用Enyim.Caching开发,我们这里使用对Enyim.Caching再次封装的MemcachedProviders,因为他用来显示的更简洁。

简单的列一下MemcachedProviders 的几个基本类

DistCache 直接CURD的数据的静态类

MemcachedCacheProvider 策略模式提供的给DistCache的业务类

CacheProviderSection 缓存配置文件节点类

 第二节 Memcached之MemcachedProviders(Enyim)客户端使用及测试_第2张图片

上图显示了MemcachedProviders的基本业务流程,我们在使用DistCache时,他首先会从配置文件找到对应的缓存策略Providers,MemcachedCachedProvider是实现了计数器功能的一个策略,当然你也可以继承CacheProviders重写一个策略类,而该类只需要实现MemcachedClient就可实现基本的业务。MemcachedClient被实现的时候,会实现默认的ServerPool 去读取Enyim节点的服务器配置信息。很简单吧,那我们就开始测试环节的工作了。

三、MemcachedProviders命中率测试

MemcachedProviders源码是GIT上载的,GIT的项目基本上都是SVN搭建的,解压后会看到Branches(项目分支),Tags(里程),Trunk(项目主线)

我直接选了主版本Trunk的源码解决方案,新建设了一个Demo测试项目。

开始工作前我们参照上节,分别用MemcaheD Manager在3台服务器上搭了Memcached服务端

第二节 Memcached之MemcachedProviders(Enyim)客户端使用及测试_第3张图片

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

View Code

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

View Code

测试结果1:

第二节 Memcached之MemcachedProviders(Enyim)客户端使用及测试_第4张图片

MemcacheD Manager结果:

第二节 Memcached之MemcachedProviders(Enyim)客户端使用及测试_第5张图片

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

配置文件:

View Code

测试结果2:

第二节 Memcached之MemcachedProviders(Enyim)客户端使用及测试_第6张图片

测试3:再增加至5台Server

配置文件: 

View Code

测试结果:

看下工具的结果:

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

我们来看下MemcachedProviders计数器结果:

第二节 Memcached之MemcachedProviders(Enyim)客户端使用及测试_第7张图片 

好了,这一节就到这里了。

你可能感兴趣的:(第二节 Memcached之MemcachedProviders(Enyim)客户端使用及测试)