2012-09-28 47 views
1

我剛開始看着ss和redis。我正在使用微軟的redis實現。打開壓縮文件時,dump.rdb增長過快。在保存到redis之前壓縮對象

我想節省每秒的流程統計信息。示例對象。

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;} 
} 

讚賞任何建議和更正。謝謝!

回答

1

ServiceStack's Redis Client的基本最上等級是RedisNativeClient,其中所有操作的工作範圍爲byte[]。 RedisClient是RedisNativeClient的一個子類,因此您可以強制轉換以獲取較低級別的API。

您需要壓縮您的值,最終將以byte[]的值直接保存到redis中。您需要做相反的處理才能將其重新取出,例如檢索原始值byte[]值並解壓縮。

ServiceStack的Redis客戶端已經依賴於ServiceStack.Common,其中包含convenient Stream Extensions來壓縮/ UnCompress數據。