ServiceStack.Redis vs. CSRedisCore

第二次跳进这个坑了。不同的 Redis 客户端保存和读取数据的方式有些不一样的地方。
之前是在做 APP 的后台接口,用的 SpringBoot 的 Redis 包,和之前.Net 项目中使用的 ServiceStack.Redis 包保存到 Redis 服务器用的值会不同。最常用的 string 就不一样,ServiceStack.Redis 会在字符串的两头各加一个双引号,还有 Guid,除了会加双引号之外,还会去除中间的半角横线。
这次则是在 .Net Core 项目中使用的 CSRedisCore 包,现象和 SpringBoot 中类似。
下面是几个常用类型的测试结果。

ServiceStack.Redis (.NET)

Set

  • String
    "2|0"
    
  • Int
    100
    
  • Guid
    "7a946a1aa6204cbf826327e3f9075987"
    
  • Object
    {
        "Id": "7a946a1aa6204cbf826327e3f9075987",
        "Age": 10,
        "Name": "User Name",
        "Date": "/Date(1544692574127+0800)/",
        "Long": 2000,
        "Money": 4000.0006
    }
    
  • long
    1000
    
  • Decimal
    200.1234
    

Get (Set by CSRedisCore)

  • String
    2|0
    
  • Int
    100
    
  • Guid
    7a946a1a-a620-4cbf-8263-27e3f9075987
    
  • Object
    {
        "Id": "7a946a1a-a620-4cbf-8263-27e3f9075987",
        "Age": 10,
        "Name": "User Name",
        "Date": "2018-12-13T17:22:08.2447883+08:00",
        "Long": 2000,
        "Money": 4000.0006
    }
    
  • long
    1000
    
  • Decimal
    200.1234
    

CSRedisCore (.NET Core)

Set

  • String
    2|0
    
  • Int
    100
    
  • Guid
    7a946a1a-a620-4cbf-8263-27e3f9075987
    
  • Object
    {
        "Id": "7a946a1a-a620-4cbf-8263-27e3f9075987",
        "Age": 10,
        "Name": "User Name",
        "Date": "2018-12-13T17:22:08.2447883+08:00",
        "Long": 2000,
        "Money": 4000.0006
    }
    
  • long
    1000
    
  • Decimal
    200.1234
    

Get (Set by SeviceStack.Redis)

  • String
    "2|0"
    
  • Int
    100
    
  • Guid
    "00000000-0000-0000-0000-000000000000"
    
  • Object
    {
        "id": "7a946a1a-a620-4cbf-8263-27e3f9075987",
        "age": 10,
        "name": "User Name",
        "date": "2018-12-13T17:16:14.127+08:00",
        "long": 2000,
        "money": 4000.0006
    }
    
  • long
    1000
    
  • Decimal
    200.1234
    

© 2018, 佳佳. 版权所有. 转载请注明出处.

发表评论

电子邮件地址不会被公开。 必填项已用*标注