【发布时间】:2012-05-03 22:54:51
【问题描述】:
我目前正在使用 MySql 来存储我的会话。效果很好,就是有点慢。
有人要求我使用 Redis,但我想知道这是否是个好主意,因为我听说 Redis 会延迟写入操作。我有点害怕,因为会话需要是实时的。
有人遇到过这样的问题吗?
【问题讨论】:
-
既然 Redis 说它具有可选的持久性,那么我会说如果您选择 HDD 上的持久性,那么使用它是安全的。但是,对于会话数据 - 我肯定会将它们保存到 RAM 中(这意味着我不会担心整个考验的耐久性部分)。如果您丢失会话数据,最糟糕的情况就是让您的用户退出。
-
是的,但这是我的要求的一部分,用户不应该重新登录,顺便说一下,在用户未登录(访客用户)的情况下,一些用户数据会在会话中保留。他们将使用 Redis RAM,但启用了日志记录和/或备份。如果我们丢失了一些会话,这是可以接受的。
-
我主要担心的是延迟写入,如果用户登录并且会话写入延迟会发生什么情况,他将被重定向但未登录
-
想象一个电子商务网站,如果会话丢失,当前的购物车也会丢失,这并不可怕,但对用户来说可能很奇怪。来宾用户仅通过会话识别,因此无法恢复他们的购物车。
-
@BorisGuéry - 并不是我不同意,但如果必须提高性能 - 出现问题时必须做出妥协。是的,用户突然退出登录会很奇怪,这是肯定的 - 但问题是它预计会多久发生一次?如果所有 Redis 节点每年都出现一两次故障,那么当整个集群不可用时,我认为没有理由在几次孤立的时间内降低性能。但这只是我。