Как использовать Memcached клиент Enyim с методом Append?

Значение, которое я пытаюсь добавить, является строкой. Я был в состоянии преобразовать строку в массив байтов, используя 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 ответ

Проблема, с которой я столкнулся, заключалась в том, что я просто инициализировал запись пустой строкой вместо пустого байтового массива. Таким образом, возвращаемый тип был искажённой ошибкой.

Проблема сводилась к тому, что метод.Append() не устанавливал начальное значение, если ключ не существует. Я посмотрю немного подробнее, чтобы увидеть, есть ли способ сделать начальный Put, если ключ не существует.

Это работает, хотя:

var bytes = (byte[])_cache.Get(key);
var value = Encoding.ASCII.GetString(bytes);
Другие вопросы по тегам