我想要附加的值是一个字符串。我已经能够使用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);
我看到返回的值,它是一个字符串。我只是不确定如何将值返回到我开始使用的字符串(现在附加)。
答案 0 :(得分:0)
我遇到的问题是我只是用空字符串而不是空字节数组初始化条目。所以返回类型是错误的错误。
问题归结为.Append()方法如果密钥不存在则不设置初始值。如果密钥不存在,我会再看看它是否有办法让它做一个初始Put。
但这有效:
var bytes = (byte[])_cache.Get(key);
var value = Encoding.ASCII.GetString(bytes);