Skip to content

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

    javascript
    "2|0"
  • Int

    javascript
    100
  • Guid

    javascript
    "7a946a1aa6204cbf826327e3f9075987"
  • Object

    json
    {
        "Id": "7a946a1aa6204cbf826327e3f9075987",
        "Age": 10,
        "Name": "User Name",
        "Date": "/Date(1544692574127+0800)/",
        "Long": 2000,
        "Money": 4000.0006
    }
  • long

    javascript
    1000
  • Decimal

    javascript
    200.1234

使用 CSRedisCore (.NET Core) 获取上面保存的值

  • String

    javascript
    "2|0"
  • Int

    javascript
    100
  • Guid

    可以看到获取单个 Guid 类型的数据的结果是错误的

    javascript
    "00000000-0000-0000-0000-000000000000"
  • Object

    json
    {
        "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

    javascript
    1000
  • Decimal

    javascript
    200.1234

CSRedisCore (.NET Core)

Set

  • String

    javascript
    2|0
  • Int

    javascript
    100
  • Guid

    javascript
    7a946a1a-a620-4cbf-8263-27e3f9075987
  • Object

    json
    {
        "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

    javascript
    1000
  • Decimal

    javascript
    200.1234

使用 ServiceStack.Redis(.NET)获取上面保存的值

  • String

    javascript
    2|0
  • Int

    javascript
    100
  • Guid

    javascript
    7a946a1a-a620-4cbf-8263-27e3f9075987
  • Object

    json
    {
        "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

    javascript
    1000
  • Decimal

    javascript
    200.1234