CacheManager memcached配置

时间:2015-05-18 16:17:59

标签: c# memcached cachemanager

我将使用CacheManager作为我的.net项目。问题是我找不到任何CacheManager.Memcached用法的例子。

这就是我使用它的方式:

public class GlobalCache
{
     private static ICacheManager<object> memcachedClient { get; set; }

     private static readonly object locker = new object();

     static GlobalCache()
     {
          if (memcachedClient == null)
          {
               lock (locker)
               {
                  memcachedClient = CacheFactory.Build("memcached", settings => settings.WithMemcachedCacheHandle("memcached"));
               }
          }
     }
}

的Web.config:

   <configuration>
     <enyim.com>
       <memcached protocol="Binary">
         <servers>
           <add address="127.0.0.1" port="11211" />
         </servers>
       </memcached>
     </enyim.com>

     <cache name="memcached">
        <handle name="memcached"/>
     </cache>
   </configuration>

我遇到的错误是: http://c2n.me/3hSHqvR.png - 网络配置中的未知部分。

如果我删除所有这些部分,我有另一个运行时错误: http://c2n.me/3hSI745.png - 配置错误。

我尝试使用settings.WithSystemRuntimeCacheHandle()而不是settings.WithMemcachedCacheHandle(),它没有任何配置部分工作正常。但在这种情况下,每次重新启动应用程序时都会清除缓存。我想要的是 - 在缓存存储中存储缓存,与我的应用程序没有任何关系。

因此,如果你有一些关于如何在CacheManager中使用memcached的示例或小教程 - 我将不胜感激。

提前致谢!

1 个答案:

答案 0 :(得分:1)

关于<cache name="memcached">部分的错误,很可能您没有使用该名称在配置文件中定义任何部分。 至少没有来自CacheManager或enyim的部分。

然后关于memcached句柄。句柄的名称必须与该部分匹配,以便CacheManager可以获取配置。 您拥有的默认值为enyim.com/memcached。因此,您可以将enyim.com/memcacheddefault作为memcached缓存句柄的名称。

喜欢

CacheFactory.Build("memcached", settings => settings
    .WithMemcachedCacheHandle("enyim.com/memcached"));

请告诉我这是否适合您。

我知道这还没有很好的记录。当我找到一些时间时,我可能会添加一些内容;)