0

我试图附加的值是一个字符串。我已经能够使用将字符串转换为字节数组Encoding.ASCII.GetBytes(value)并将其传递给IMemcachedClient

附加到 Memcached(似乎很好)

var value = "Some string value that should get appended";
var bytes = Encoding.ASCII.GetBytes(value);
_memcachedClient.Append(key, new ArraySegment<byte>(bytes, 0, bytes.Length));

从 Memcached 获取附加值

var valueAsBase64 = _memcachedClient.Get(key) as string;
var bytes = System.Convert.FromBase64String(valueAsBase64);
var result = Encoding.ASCII.GetString(bytes);

我看到返回的值,它是一个字符串。我只是不确定如何将返回的值返回到我开始使用的字符串(现在附加)。

4

1 回答 1

0

我遇到的问题是我只是用空字符串而不是空字节数组初始化条目。所以返回类型是一个错综复杂的错误。

如果键不存在,问题归结为 .Append() 方法没有设置初始值。如果密钥不存在,我将对其进行更多研究,看看是否有办法让它执行初始 Put。

这虽然有效:

var bytes = (byte[])_cache.Get(key);
var value = Encoding.ASCII.GetString(bytes);
于 2017-08-19T21:46:35.477 回答