【问题标题】:Converting processes from mysql to Redis将进程从 mysql 转换为 Redis
【发布时间】:2013-11-10 12:41:14
【问题描述】:

我来自 mysql,试图将我的头包裹在 redis 上。有些事情很明显,但有几件事让我很难过。你会如何在 redis 中实现这些东西?

第一

我有一种先到先得的预订系统。当用户进入特定页面时,它会查询下表并返回第一个badge,其中reservedby = 0,然后使用用户ID 更新reservedby。如果用户未在 15 分钟内完成该过程,reservedby 将重置为 0。如果用户完成该过程,我会从表中删除该行并将badge 与用户数据一起存储。顺序很重要,徽章在列表中越高越好,所以如果我要删除它而不是以某种方式将其标记为保留,如果该过程未在 15 分钟内完成,则需要返回顶部.

id  | badge | reservedby
------------------------
240 | abc   | 4249
241 | bbb   | 0
242 | rrr   | 0

第二

我有一组不经常更改但被查询很多的数据。当页面加载时,它会用每个color 填充一个选择框,当您选择一种颜色时,会显示相应的smlg

id |  color   |  sm  |  lg
---------------------------
1  |  blue    |  1   |  5
2  |  red     |  3   |  10
3  |  yellow  |  7   |  8

最后

就存储用户数据而言,我正在做的是INCR users 然后取该值和hmset user:<INCR users value> badge "aab" joindate "10/30/2013" 等,这通常应该如何完成?

【问题讨论】:

    标签: mysql node.js nosql redis node-redis


    【解决方案1】:

    倒序

    • 是的,这就是在 Redis 中增加 IDs 的方式,没有自动功能。

    • 取决于表更改的频率,如果它每月一次考虑向客户端提供静态 json 文件并让客户端处理其余代码。

    • 考虑使用 ZSET 并尝试在分数处保留唯一值,或者使用带有 json 值的 LIST

    恕我直言,您的预订系统内部有点糟糕,我可以通过发送多个 http 请求轻松地预订您的网站优惠,其他生产网站的优惠有限,先付款的用户有房间,直到付款成功时继续处理,失败时返回。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-19
      • 2013-09-08
      • 2021-10-30
      • 2011-05-03
      • 2012-02-26
      • 2014-07-02
      • 1970-01-01
      相关资源
      最近更新 更多