我需要为我的公司实施会话管理,到目前为止我们一直在使用RDBMS,但由于会话数据的延迟应该非常低,因此延迟太高。
所以我想在网上研究它并发现这三个选项:
现在我开始尝试这些解决方案,但希望从经验丰富的解决方案中获得2美分。工作负载模式将是50/50读/写,并且需要HA的集群。
我们需要高吞吐量,低延迟和最终的一致性。
根据我的搜索结果,看起来NoSQL非常适合这种情况,但希望能听到更多关于此的内容。
哪些选项最适合此类工作负载?
答案 0 :(得分:3)
Ad Business是使用会话管理的最大行业之一。我已经看到他们几乎都考虑过基于NoSQL的解决方案。
由于广告业务的主要要求是延迟时间最短的展示广告,因此通常会将数据存储在内存中以降低延迟。但这需要付出代价。
由于您已经提到过Aerospike,它针对SSD进行了优化,因此您也可以通过在SSD上存储数据来实现亚毫秒级延迟。此产品最近开源。
还有其他选项,如上面评论中提到的Redis,但Aerospike确实为HA目的和自动分片提供了跨数据中心复制等优势。使用最少的配置设置和运行非常容易。
所以我会投票给NoSQL查看你的用例。
答案 1 :(得分:0)
Microsoft在ASP.NET及其PaaS Azure中提供将Redis用作会话存储。我想他们知道为什么他们选择支持这个特定的NoSQL DB,所以你可能想看看它。
Redis在内存键值存储中并提供时间限制插入(数据可以在一段时间后由redis自动删除)。此外,您还可以将其部署在多台计算机上,以实现更好的性能或更高的可用性。