我已经在亚马逊ElastiCache上创建了一个缓存集群。它给了我一个端点地址。现在,我想将数据存储在亚马逊ElastiCache中。为此,我正在使用enyim memcached客户端。
服务器给出了一个错误;
Enyim.Caching.Memcached.ServerPool类型初始化程序抛出一个错误
我的配置看起来像这样;
<enyim.com>
<memcached>
<servers>
<!-- put your own server(s) here-->
<add address="<MyendPointAddress" port="11211" />
</servers>
<socketPool minPoolSize="10" maxPoolSize="100"
connectionTimeout="00:01:10" deadTimeout="00:05:00" />
</memcached>
</enyim.com>在C#中,我写了这样的东西;
using (MemcachedClient client = new MemcachedClient())
{
client.Store(Enyim.Caching.Memcached.StoreMode.Add, key, value);
var l = client.Get(key);
}当我使用本地主机时,代码不会抛出任何错误,但不会存储任何内容。
编辑:现在我转到了BeIT memcached客户端。它运行良好,但是返回null作为Get()请求的输出。
发布于 2014-04-11 08:02:57
不要使用信任节点,ElastiCache设置一个配置端点,您可以使用它们与它们一起使用,或者滚动您自己的库来获取节点。它们记录了大多数如何在开发人员文档上使用此配置节点的方法。
这样做的好处是,在添加或删除节点时,不必重新配置应用程序,只需询问memcached配置节点即可。
如果您不想这样做,那么只需转到节点并将它们添加到您的配置中,就像您只需要一堆Memcached服务器一样。
发布于 2015-08-24 23:07:48
这个问题已经有一段时间了,但万一其他人也面临同样的问题。
enyim.memcached配置需要像这样;
<configSections>
<section name="clusterclient" type="Amazon.ElastiCacheCluster.ClusterConfigSettings, Amazon.ElastiCacheCluster" />
</configSections>
<clusterclient>
<endpoint hostname="[Add your ElastiCache cluster endpoint here]" port="11211" />
<node nodeTries="5" nodeDelay="1000" />
<poller intervalDelay="60000" />
</clusterclient>然后,您可以通过C#代码访问弹奏缓存;
new MemcachedClient(new ElastiCacheClusterConfig()).Store(key, value, expireAt)
new MemcachedClient(new ElastiCacheClusterConfig()).Get(key)下面是一个完整的示例:http://www.omidmufeed.com/how-to-use-elasticache-memcached-or-runtime-caching-in-c/
https://stackoverflow.com/questions/21041455
复制相似问题