Как использовать клиент enyim memcached с amazonasticache в C#

Я создал кластер кеша на 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 клиент. Он работает нормально, однако возвращает ноль в качестве вывода для запросов Get().

2 ответа

Не используйте узлы конфигурации, 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>

Затем вы можете получить доступ к Elasticache через код 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/

Другие вопросы по тегам