CacheManager memcached configuration

本文关键字:configuration memcached CacheManager | 更新日期: 2023-09-27 17:49:45

我将使用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 - web配置中未知的部分。

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

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

所以,如果你有一些例子或小教程如何使用memcached与CacheManager -我将不胜感激。

提前感谢!

CacheManager memcached configuration

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

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

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

让我知道这是否适合你。

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