我将使用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的示例或小教程 - 我将不胜感激。
提前致谢!
答案 0 :(得分:1)
关于<cache name="memcached">
部分的错误,很可能您没有使用该名称在配置文件中定义任何部分。
至少没有来自CacheManager或enyim的部分。
然后关于memcached句柄。句柄的名称必须与该部分匹配,以便CacheManager可以获取配置。
您拥有的默认值为enyim.com/memcached
。因此,您可以将enyim.com/memcached
或default
作为memcached缓存句柄的名称。
喜欢
CacheFactory.Build("memcached", settings => settings
.WithMemcachedCacheHandle("enyim.com/memcached"));
请告诉我这是否适合您。
我知道这还没有很好的记录。当我找到一些时间时,我可能会添加一些内容;)