2014-01-10 2 views
1

Я создал кластер кеша на Amazon ElastiCache. Он дал мне адрес конечной точки. Теперь я хочу сохранить данные в Amazon ElastiCache. Для этого я использую клиент enyim memcached.Как использовать enyim memcached клиент с амазонной эластикой в ​​C#

Сервер дает сообщение об ошибке;

Тип инициализатор 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); 
      } 

Когда я использую локальный хост, код не вызывает ошибок, но ничего не хранит.

Редактировать: Теперь я перешел на клиент Beet memcached. Он работает нормально, однако возвращает null в качестве вывода для запросов Get().

ответ

1

Не используйте концентрационные узлы, ElastiCache устанавливает конечную точку конфигурации, которую вы можете использовать с помощью библиотек Java или PHP, которые у них есть, или сворачивайте свои собственные, чтобы получить узлы. Они документируют большую часть того, как использовать этот узел конфигурации в документах разработчика.

Преимущество этого в том, что в любое время, когда узел добавлен или удален, вам не нужно перенастраивать приложение, вы можете просто опросить узел конфигурации memcached.

Если вы не хотите этого делать, просто перейдите к узлам и добавьте их в свою конфигурацию так, как если бы у вас была куча серверов Memcached.

0

Прошло некоторое время с этого вопроса, но в случае, если другие люди столкнулись с одной и той же проблемой.

Конфигурация 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/

+0

Эластичные кластеры не могут быть доступны извне AWS; http://stackoverflow.com/questions/22594837/using-elasticache-through-c-sharp – omufeed

Смежные вопросы