В одном из наших хранилищ данных Redis мы храним предварительно обработанные данные для более быстрого обслуживания. По мере роста числа данных мы рассматриваем возможность сжатия некоторых данных. Что мы будем делать:
- Сериализация объекта (любого типа) в Json.
string json = JsonConvert.SerializeObject(item);
- Получение байтового массива из этой строки
Encoding.UTF8.GetBytes(json)
Сжать это значение (выкачать)
У нас есть класс-оболочкахранить сжатый байтовый массив
internal class CompressedData
{
public CompressedData()
{
}
public CompressedData(byte[] data)
{
this.Data = data;
}
public byte[] Data { get; set; }
}
Сохранить экземпляр
CompressedData
в redis
Мне просто интересно, насколько хорош или плох этот подход. Любые предложения приветствуются.
Мы используем выделенный сервер Windows, на котором установлен Redis. Приложение C # использует библиотеку StackExchange в качестве клиента Redis.