servicestack,C#,Compression,Redis,servicestack" /> servicestack,C#,Compression,Redis,servicestack" />

C# 在保存到redis之前压缩对象

C# 在保存到redis之前压缩对象,c#,compression,redis,servicestack,C#,Compression,Redis,servicestack,我刚刚开始研究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

我刚刚开始研究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;}
}
感谢您的建议和纠正。谢谢

中最基本的类是,所有操作都在
字节[]
上工作。RedisClient是RedisNativeClient的一个子类,因此您可以强制转换以获得较低级别的API

您需要压缩您的值,该值最终将成为一个
字节[]
,您可以直接保存到redis中。您需要执行相反的操作才能再次将其取出,例如检索原始
字节[]
值并解压缩

ServiceStack的Redis客户端已经依赖于ServiceStack.Common,它包含压缩/解压缩数据的命令。

中最基本的类是所有操作都在字节[]上工作的类。RedisClient是RedisNativeClient的一个子类,因此您可以强制转换以获得较低级别的API

您需要压缩您的值,该值最终将成为一个
字节[]
,您可以直接保存到redis中。您需要执行相反的操作才能再次将其取出,例如检索原始
字节[]
值并解压缩

ServiceStack的Redis客户端已经依赖于ServiceStack.Common,它包含压缩/解压缩数据的命令