在rails中以db存储会话

时间:2013-04-11 21:41:49

标签: ruby-on-rails session

我最近在rails应用程序中遇到了cookieOverflow异常。我已经google了一下,发现这个答案最有帮助:

https://stackoverflow.com/a/9474262/169277

在数据库中实现了存储会话后,我试图弄清楚这种方法的缺点到目前为止我在会话表中看到大约1200个条目,这些条目仅在几个小时内填充。

何时与数据库进行实际交互,仅在将数据写入会话或?

这种增长速度相当快,所以有没有办法从db中清除旧的未使用的会话,而不是每天都有一些cron作业。

我只是在寻找关于这种方法的一些额外信息,现在我想我应该保留它还是改变我的应用程序的逻辑。

1 个答案:

答案 0 :(得分:1)

> Cookie中的4KB很多,因此更改您的应用可能不是一个坏主意。

那就是说,几个小时内的1200似乎并不古怪。如果您担心无限制地增长它,可以使用memcache或redis作为缓存层来存储cookie而不是数据库。这将使您免于担心数据库的增长。不利的一面是,搬迁可能意味着你要将人们赶出去。

所有这一切,我们有一些日常的类似cron的工作,清理我们的数据库表,而不是会话,但它是类似的。无论如何,它们在夜间运行时利用率很低。