4

我正在尝试将一个简单的 memcached 客户端从 .NET 4 移植到 AWS Lambda 上的 .Net Core。我正在努力配置新的 EnyimMemcachedCore 客户端,因为示例 ( https://github.com/cnblogs/EnyimMemcachedCore ) 使用 appsettings.json 来设置配置,但使用 .net 核心的 Lambda 函数不使用 appsettings.json。我需要能够在 C# 代码中设置服务器/端口/端点。

谁能给我一个使用 EnyimMemcachedCore 手动创建配置的示例?

Enyim 的标准 .net 使用很容易通过键获取并返回一个值:

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);

如何使用 EnyimMemcachedCore 做类似的事情(在代码中配置 memcached 客户端,而不是在配置文件中)?

4

2 回答 2

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);

您可以单独添加节点,直到集群配置可用于 .NET Core(如果还没有)

于 2017-08-22T19:51:44.993 回答
0

我想这已于今天(2018 年 9 月 18 日)得到修复。我尝试了以下 appsettings,使用了具有一个节点的 memcache 的配置端点

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

以及上面的代码ConfigureServices

services.AddEnyimMemcached(Configuration);

它就像魅力一样工作。我还没有尝试过两个节点。如果它不适用于多个节点,请随时纠正我

于 2018-09-18T09:48:23.653 回答