skip to Main Content

I am trying to port a simple memcached client from .NET 4 to .Net Core on AWS Lambda. I am struggling to configure the new EnyimMemcachedCore client because the examples (https://github.com/cnblogs/EnyimMemcachedCore) use appsettings.json to setup the config, but Lambda functions using .net core do not use appsettings.json. I need to be able to setup the server/port/endpoint in the C# code.

Can anyone give me an example using EnyimMemcachedCore that creates the configuration manually?

The standard .net use of Enyim was trivial to fetch by key and return a value:

using Enyim.Caching;
using Enyim.Caching.Configuration;
using Enyim.Caching.Memcached;

...
// setup Enyim memcached client
MemcachedClient myCache;
MemcachedClientConfiguration config;
config = new MemcachedClientConfiguration(); 
config.AddServer("theIP", thePort);
config.Protocol = MemcachedProtocol.Text;

// instantiate client
myCache = new MemcachedClient(config);

// get the stored item
var result = myCache.Get(key);

How do I do something similar (configure the memcached client in code, not in a config file) with EnyimMemcachedCore?

2

Answers


  1. // setup Enyim memcached client
    var config = new MemcachedClientConfiguration();
    
    //add each node manually if you can't get the Amazon.ElastiCacheCluster config for Core, 
    //but if you can, use that instead of MemcachedClientConfiguration
    config.AddServer("something.0001.usw1.cache.amazonaws.com", 11211);
    config.AddServer("something.0002.usw1.cache.amazonaws.com", 11211);
    
    config.Protocol = MemcachedProtocol.Text;
    
    // instantiate client
    var myCache = new Enyim.Caching.MemcachedClient(config);
    

    you can add the nodes individually until the cluster config becomes available for .NET Core (if it hasn’t yet)

    Login or Signup to reply.
  2. I guess this has been fixed as of today, 18 September 2018. I have tried the following appsettings, used the configuration endpoint of memcache which has one node

    "enyimMemcached": {
        "Servers": [
            {
                "Address": "st-cache-01-v2.l0nmej.cfg.xxxx.cache.amazonaws.com",
                "Port": 11211
            }
        ]
    }
    

    And the code on the ConfigureServices

    services.AddEnyimMemcached(Configuration);
    

    It’s working like charm. I haven’t tried with two nodes yet. Please feel free to correct me if it doesn’t work for more than one node

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search