我正在考虑使用与memcached配对的noSQL(mongoDB)将 session 存储在我的webapp中。这个想法是在每次页面加载时,将用户数据与内存缓存中的数据进行比较,如果发生了某些变化,则数据将同时写入内存缓存和mySQL。这样,将大大减少读取次数,并利用memcached来做最擅长的事情。

但是我有点担心使用非ACID数据库进行 session 存储,尤其是在内存缓存层中。假设将 session 更新到数据库时出了点问题,我们的用户立即感到头疼,想知道为什么他们放入购物车的产品没有显示出来...

什么是合适的方法呢?我们应该使用mySQL session 存储还是为 session 保留一个非酸性支持的数据库是否合适?

谢谢!

最佳答案

如果您不想丢失数据,请使用经过ACID测试的数据库。

您正在寻找什么 yield ?

如果您想要一个安全的系统,则除了要选择选定的整数之外,您将无法信任用户的任何信息,因此,让他们存储信息通常是一个非常糟糕的主意。

我看不到将 session 存储在MySQL数据库外部的 yield 。您可以在表上进行cron清理,但是为什么要打扰呢?一些用户会在网站上购物,然后分散注意力。然后,他们将在一两天后回来。

如果您使用cookie或一些临时的东西来存储他们的 session 信息,那么很有可能浪费了他们的购物时间。用户真的很珍惜他们的时间...因此,如果您将他们的 session 信息存储在数据库中,则可以编写一些有趣的内容来管理该数据。

另外,这样做的好处是,您将生成许多残留的信息,这些信息可能有关您网站上人们的喜好,而这些信息以后可能不会提供给您。就像您甚至可以认为其中的某些内容像民意测验一样,或者人们将其添加到购物车中的物品可能影响您管理业务,订购库存或关注营销的方式。

如果您采取的措施确实是暂时的,那么您将失去获得剩余 yield 的机会。

关于php - 在没有ACID数据库的情况下处理 session ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3685665/

10-09 21:21
查看更多