【问题标题】:Flask sessions in memcached/Couchbase; are they safe?memcached/Couchbase 中的 Flask 会话;他们安全吗?
【发布时间】:2015-09-03 21:14:39
【问题描述】:

目前在IIS/Windows 2008 Server下运行了几个Flask网站,我们需要实现会话和应用范围存储。 我正在检查 Flask 中 Sessions 的可能性,并在 Windows 2008 上运行或多或少地排除了 Redis 作为可行的存储选项(我知道有一个 Windows 端口,但它似乎还不够成熟)。

下一个最佳选择似乎是 memcached。 Couchbase 的形式有一个非常漂亮的 Windows 实现,但我们有一些顾虑/问题;

  1. 如果会话中的数据过多,并且可用内存已满,memcached 会开始删除旧的(但可能仍然是合法的)会话数据吗?
  2. 如果是这样,Couchbase/memcached 中是否有解决方案来防止这种情况发生?
  3. 在 couchbase 主页上,它说也可以安装 couchbase as a key/value store。这是否是存储会话数据的更好选择,还是会出现与将 Couchbase 安装为 memcache 兼容存储相同的问题?

【问题讨论】:

  • 我认为memcache通常用于缓存数据;我会在这里使用 redis 作为会话数据的键/值存储。在任一情况下;如果您开始用完工作内存,我知道没有数据库会开始随机删除旧数据:)
  • 嗨@JamesMills,这就是我的观点。它原则上是一个缓存引擎,所以如果不经常使用它会使数据过时。如果我理解正确,陈旧的数据将从缓存中删除,以便为更频繁使用的数据腾出空间。因此,如果有大量活动,这可能会导致 memcached 删除活动会话。
  • 这当然很有可能,具体取决于配置;这就是为什么我推荐使用像Redis这样的实际键/值存储:)
  • 从 Couchbase 的角度来看,这取决于您使用的存储桶类型。如果您使用 memcached 存储桶,它将表现得像 memcached。如果你是 couchbase 存储桶,那么一旦内存被填满,它就会弹出已经持久化到磁盘的项目。

标签: python session flask couchbase


【解决方案1】:

在 Couchbase 服务器的上下文中:

  1. 如果会话中的数据过多,并且可用内存已满,memcached 会开始删除旧的(但可能仍然是合法的)会话数据吗?

是的 - memcached 是一个 缓存 - 您指定内存配额,并且该数量的 RAM 用于缓存项目。当您填满该金额时,它将弹出(即删除)旧项目。这是标准的缓存行为。

  1. 如果是这样,Couchbase/memcached 中是否有解决方案来防止这种情况发生?
  2. 在 couchbase 主页上,它说也可以将 couchbase 安装为键/值存储。这是否是存储会话数据的更好选择,还是会出现与将 Couchbase 安装为 memcache 兼容存储相同的问题?

对于 memcached - 不是真的 - 这就是它的全部意义所在。

对于 Couchbase 服务器 - 是的。除了 memcache 类型的存储桶之外,Couchbase Server 还具有 Couchbase 存储桶类型。这有一个内存配额,用于保存最近使用的项目,但所有项目都持久到磁盘。如果某个项目在内存中不可用,那么它将从磁盘中获取它。

【讨论】:

    猜你喜欢
    • 2012-10-18
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    相关资源
    最近更新 更多