【发布时间】:2015-09-03 21:14:39
【问题描述】:
目前在IIS/Windows 2008 Server下运行了几个Flask网站,我们需要实现会话和应用范围存储。 我正在检查 Flask 中 Sessions 的可能性,并在 Windows 2008 上运行或多或少地排除了 Redis 作为可行的存储选项(我知道有一个 Windows 端口,但它似乎还不够成熟)。
下一个最佳选择似乎是 memcached。 Couchbase 的形式有一个非常漂亮的 Windows 实现,但我们有一些顾虑/问题;
- 如果会话中的数据过多,并且可用内存已满,memcached 会开始删除旧的(但可能仍然是合法的)会话数据吗?
- 如果是这样,Couchbase/memcached 中是否有解决方案来防止这种情况发生?
- 在 couchbase 主页上,它说也可以安装 couchbase as a key/value store。这是否是存储会话数据的更好选择,还是会出现与将 Couchbase 安装为 memcache 兼容存储相同的问题?
【问题讨论】:
-
我认为memcache通常用于缓存数据;我会在这里使用 redis 作为会话数据的键/值存储。在任一情况下;如果您开始用完工作内存,我知道没有数据库会开始随机删除旧数据:)
-
嗨@JamesMills,这就是我的观点。它原则上是一个缓存引擎,所以如果不经常使用它会使数据过时。如果我理解正确,陈旧的数据将从缓存中删除,以便为更频繁使用的数据腾出空间。因此,如果有大量活动,这可能会导致 memcached 删除活动会话。
-
这当然很有可能,具体取决于配置;这就是为什么我推荐使用像Redis这样的实际键/值存储:)
-
从 Couchbase 的角度来看,这取决于您使用的存储桶类型。如果您使用 memcached 存储桶,它将表现得像 memcached。如果你是 couchbase 存储桶,那么一旦内存被填满,它就会弹出已经持久化到磁盘的项目。
标签: python session flask couchbase