在 AWS 中,我在私有子网中的 VPC 中设置了一个小型 memcached 节点。我的 lambda 位于同一 VPC 和私有子网中。
我的 lambda 运行 EnyimMemcached 代码,没有异常。
当我查看 CloudWatch 时,执行 lambda 时会看到与我的 memcache 节点的连接,并且它还显示写入的字节,但“使用的缓存项目字节”保持为 0,并且存储命令返回“False”。
我的 Get 请求也显示在 Cloudwatch 中,因此似乎存在与该节点的连接。我的收获总是错过,这是有道理的,因为商店不成功。
这就是我在测试时设置内存缓存的方式。我希望有人能指出我做错了什么,因为我已经被困了一段时间试图解决这个问题。
var loggerFactory = new LoggerFactory();
ILogger logger = loggerFactory.CreateLogger<ValuesController>();
var memcacheOptions = new MemcachedClientOptions();
var config = new MemcachedClientConfiguration(loggerFactory, memcacheOptions);
config.Protocol = MemcachedProtocol.Binary;
var mc = new MemcachedClient(loggerFactory, config);
bool done = mc.Store(StoreMode.Set, "foo", "bar", DateTime.Now.AddMinutes(5));
谢谢
进行以下更改后,它开始工作:
var memcacheOptions = new MemcachedClientOptions();
memcacheOptions.Protocol = MemcachedProtocol.Binary;
var config = new MemcachedClientConfiguration(loggerFactory, memcacheOptions);
config.AddServer("memcache_server_address:port");
现在我正在努力在启动的配置服务中找到正确的地址设置。