gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 06:15:57 25 4
gpt4 key购买 nike

刚开始看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;}
}

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

最佳答案

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

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

ServiceStack 的 Redis 客户端已经依赖于 ServiceStack.Common,其中包含 convenient Stream Extensions压缩/解压缩数据。

关于c# - 在保存到 redis 之前压缩对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12632473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com