Elastisearch作为会话数据存储?

时间:2018-02-21 11:30:41

标签: php session elasticsearch

为什么不应该将elasticsearch用作php的会话数据存储?

我们目前正在使用mysql来存储此应用的会话数据,但随着用户群的增长,维护和扩展会变得很麻烦。 我们正在考虑将会话迁移到redis或couchbase,但为什么不进行elasticsearch?

专业人士:

  • 根据我的理解,elasticsearch是一个非常有能力的键/值存储。
  • 我们已经拥有强大的&可扩展的集群,因此迁移&维护得到了缓解。

缺点:

  • 似乎没有人将elasticsearch用作会话存储......

2 个答案:

答案 0 :(得分:0)

首先:ElasticSearch NOT 键值存储。 它是搜索引擎。 它可以帮助您索引数据并快速找到它,这是它的最佳用例。

当然,您可以将会话存储在那里,但它不是为它而构建的:

  • 使用ElasticSearch改进了安全性,但我仍然不相信它存储会话。
  • 如果您的某个群集死亡,您可能会丢失这些会话(取决于您的架构)
  • ElasticSearch非常渴望内存。如果您正在使用它来存储会话,那么您真的会烧钱。
  • Memcache + Redis是可靠的,可扩展的,可与PHP一起使用(即您可以在php.ini中为这两个人定义会话存储)。如果不是更快,它们也会和ES一样快。

TL;博士;您可以使用它,您可以使用数据库或文件,但有更好的工具可用于此工作。

附注:我实际上看到承包商为我们正在运行的项目之一实施它,这是我遇到过度工程的最好例子之一。废弃它并使用Memcache实现相同的逻辑所花费的时间比用于产生怪物的时间少了10倍。

答案 1 :(得分:0)

从2016年开始,但我仍然有这个想法的好处: https://www.linkedin.com/pulse/elasticsearch-magento-session-storage-analyzer-zsolt-szalay/

Elasticsearch不在关键值服务器中,但仍在飞速发展,并且使您获得更多收益。您可以搜索会话数据,也可以实时分析它们。 可能您不一定需要那样。但是,与简单的键值服务器相比,这是一个优点,该服务器旨在快速交付并且该部分通常运行良好。 :)

希望可以帮助并触发您:) 谢谢