如何在c#中使用enyim memcached客户端与亚马逊elasticache

我在Amazon ElastiCache上创建了一个缓存集群。 它给了我一个终点地址。 现在我想将数据存储在Amazon 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()请求的输出。


不要使用confiugration节点,ElastiCache设置一个配置终点,您可以使用它们具有的Java或PHP库,或者自行获取节点。 他们记录了大部分如何在开发人员文档上使用此配置节点。

这样做的好处是,无论何时添加或删除节点,都不必重新配置应用程序,只需询问memcached配置节点即可。

如果您不想这样做,那么只需转到节点并将它们添加到您的配置中,就像您刚刚拥有一堆Memcached服务器一样。


这个问题已经有一段时间了,但如果其他人面临同样的问题。

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#代码访问Elasticache;

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/

链接地址: http://www.djcxy.com/p/54099.html

上一篇: How to use enyim memcached client with amazon elasticache in c#

下一篇: How do you add swap to an EC2 instance?