I read about Postgres中的HStore也是Redis提供的东西。
我们的应用程序是用NodeJS编写的。两个问题:
性能方面,Postgres HStore与Redis相当吗?
对于会话存储,你会推荐什么 - Redis,或Postgres与其他类型的数据类型(如HStore,或者甚至是通常的关系表)?一个选项与另一个选项有多糟糕?
另一个限制是,我们需要使用已经在PostgreSQL中的数据并将其与活动会话(我们不确定此时存储在哪里,如果在Redis或PostgreSQL中)相结合。
根据我们的阅读,我们已经指出使用Redis作为会话管理器,但由于PostgreSQL约束,我们不确定如何将两者结合起来以及可能出现的性能问题。
谢谢!
答案 0 :(得分:26)
Redis将比Postgres更快,因为Pg为您的数据提供可靠性保证(当提交事务时,它保证在磁盘上),而Redis有一个写入磁盘的概念,当它感觉像,所以不应该不能用于关键数据。
Redis似乎是您的会话数据的一个很好的选择,或者甚至存储在cookie或客户端Javascript中。但是,如果您在每个请求中都需要数据库中的数据,那么它可能甚至不值得涉及Redis。这在很大程度上取决于您的申请。
答案 1 :(得分:3)
使用PostgreSQL作为会话管理器通常是个坏主意。
对于早于9.1的事件,基于持久性媒体参数,每秒事务的物理限制。对于会话管理,您通常不需要MGA(因为没有冲突),这意味着MGA是开销,没有MGA和ACID的数据库必须明显更快(10或100)。
我知道一个用例,其中PostgreSQL用于会话管理,性能非常糟糕且不稳定 - 它是eshop,有大约10000个生活会话。当会话管理转移到memcached时,性能和稳定性显着提高。 PostgreSQL可以毫无问题地用于100个生活会话。对于更高的数字,有更好的工具。