如何使用Enndim方法使用Enyim的Memcached客户端?

时间:2017-08-19 21:30:18

标签: c# memcached enyim

我想要附加的值是一个字符串。我已经能够使用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);

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

1 个答案:

答案 0 :(得分:0)

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

问题归结为.Append()方法如果密钥不存在则不设置初始值。如果密钥不存在,我会再看看它是否有办法让它做一个初始Put。

但这有效:

var bytes = (byte[])_cache.Get(key);
var value = Encoding.ASCII.GetString(bytes);