【问题标题】:Bookings Engine | Redis预订引擎 |雷迪斯
【发布时间】:2016-03-30 10:41:46
【问题描述】:

我计划为我的预订引擎使用 StackExchange.Redis c# 包装器。 但我担心会在同一日期范围内注册的预订。

如何确保不会创建重叠订单?

【问题讨论】:

    标签: redis stackexchange.redis


    【解决方案1】:

    您必须为您的数据使用唯一的密钥。 2个主要解决方案:

    解决方案 1:在 REDIS 中存储唯一大小 跟踪预订号码

    1. 密钥名称:bookings:size
    2. 在每次预订时,获取 bookings:size,然后在预订后获取 add +1
    3. 像这样使用 booking:size 作为键

      bookings:order-1

      bookings:order-2

      bookings:order-3

    解决方案 2:在您的程序中生成唯一密钥 1. 在你的代码中生成一个唯一的密钥(最好使用安全的 UUID 生成器) 2. 像这样使用它

    预订:order-123GSDDG34TERG34T34EG45G5F54Y456H56HH57J45VF43

    预订:order-12234535646323535756854778566746756HH57J45VF43

    预订:order-7777777777777777777743ERGSDFG4556H6776H76H7H7H

    对比? 我真的更喜欢 Solution2,因为它是在不要求服务器的情况下拥有唯一密钥的最佳方式。这是一种常见的休息练习。还允许在 redis 服务器的分片上拆分密钥......等等。

    【讨论】:

      猜你喜欢
      • 2020-10-05
      • 2015-04-09
      • 2017-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      相关资源
      最近更新 更多