1

我刚开始看ss和redis。我正在使用 microsoft redis 实现。打开压缩后,dump.rdb 增长太快。

我想保存每秒的进程统计信息。示例对象。

public class PerfData
{
    public long Id { get; set; }    
    public DateTime TimeStamp { get; set; }
    public string ProcessName { get; set; }
    public int ProcessId { get; set; }
    public TimeSpan TotalProcessorTime { get; set; }
    public TimeSpan UserProcessorTime { get; set; }
    public TimeSpan PrivilegedProcessorTime { get; set; }
    public float ProcessorTime { get; set; }
    public float WorkingSet { get; set; }
}

我已经看到了压缩客户端的建议。这是否意味着我需要将对象转换为这样的东西?

public class PerfData
{
    public long Id { get; set; }    
    public DateTime TimeStamp { get; set; }
    public byte[] CompressedJson{get;set;}
}

感谢任何建议和更正。谢谢!

4

1 回答 1

1

ServiceStack 的 Redis Client中最基础的类是RedisNativeClient,所有操作都在其中进行byte[]。RedisClient 是 RedisNativeClient 的子类,因此您可以强制转换以获取较低级别的 API。

你需要压缩你的值,最终byte[]你可以直接保存到redis中。您需要进行相反的操作才能再次将其取出,例如检索原始byte[]值并解压缩它。

ServiceStack 的 Redis 客户端已经依赖于 ServiceStack.Common,其中包含方便的流扩展来压缩/解压缩数据。

于 2012-09-28T21:50:39.970 回答