我正在使用带有连接中间件的Node’s Express。Connect的内存会话存储不适合生产:
Warning: connection.session() MemoryStore is not designed for a
production environment, as it will leak memory, and obviously only work
within a single process.
对于较大的部署,mongo或redis是有意义的。
但是,生产中的单主机应用程序有什么好的解决方案?
花了一天的时间对此进行调查。这是我发现的选项。每秒请求数是ab -n 100000 -c 1 http://127.0.0.1:9778/
在我的本地计算机上执行的。
maxAge
)ttl
)clear_interval
设置清理会话这是我用于cookieSession的coffeescript:
server.use express.cookieSession({
secret: appConfig.site.salt
cookie: maxAge: 1000*60*60
})
这是我用于redis的coffeescript:
RedisSessionStore ?= require('connect-redis')(express)
redisSessionStore ?= new RedisSessionStore(
host: appConfig.databaseRedis.host
port: appConfig.databaseRedis.port
db: appConfig.databaseRedis.username
pass: appConfig.databaseRedis.password
no_ready_check: true
ttl: 60*60 # hour
)
server.use express.session({
secret: appConfig.site.salt
cookie: maxAge: 1000*60*60
store: redisSessionStore
})
这是我给蒙哥写的咖啡稿:
server.use express.session({
secret: appConfig.site.salt
cookie:
maxAge: 100*60*60
store: new MongoSessionStore({
db: appConfig.database.name
host: appConfig.database.host
port: appConfig.database.port
username: appConfig.database.username
password: appConfig.database.password
auto_reconnect: appConfig.database.serverOptions.auto_reconnect
clear_interval: 60*60 # hour
})
})
当然,现在,远程redis和mongo数据库将比其本地等效数据库慢。
我只是无法让当地的同类设备正常工作,特别是考虑到与托管远程替代产品相比,我的安装和维护时间远远超过了我愿意投资的时间,我对其他人也是如此,因此为什么这些托管远程替代产品也是如此数据库服务首先存在!
众所周知,创建NSDate格式器是“昂贵的” 甚至苹果的数据格式指南(2014-02年更新)也指出: 创建日期格式化程序并不是一项廉价的操作。如果您可能经常使用格式化程序,缓存单个实例通常比创建和处理多个实例更有效。一种方法是使用静态变量。 但该文档似乎并不是swift的最新版本,我在最新的NSDateFormatter类参考中也找不到任何关于缓存格式化程序的信息,所以我只能假设swift和obj
问题内容: 我想编写一个执行屏幕操作的Java终端应用程序。有没有好的图书馆可以让您像* nix / C世界中的诅咒一样操纵屏幕? 我正在寻找的最小功能是窗口和用户输入支持。 在功能方面,我想在终端的区域中定期更新一些数据,同时(同时)用户可以在屏幕的其他部分输入命令/文本。 问题答案: 有Charva,它链接到本机代码,但是具有基于Swing的api
sessionStorage 会话存储 存储针对QQ帐号隔离 数据存储于内存中,当前游戏结束后被清空 函数 key( index ) 获取对应索引的key 手q 版本7.8.5 参数 参数名 类型 说明 index number 索引值 返回值 类型 说明 string 说明 示例 var stringKey = BK.sessionStorage.key(0); getItem( key )
问题内容: 我想用Spring来实现一个购物车,所以我需要在会话中保存一个对象(该对象具有product,paymentType和deliveryType之类的属性)。我尝试使用bean并将属性“ scope”设置为“ session”来创建它,但是它不起作用,我应该在控制器或类中使用一些其他注释吗?任何示例用法都将非常有帮助:-)预先感谢。 问题答案: 然后 如果它在Web上下文(dispatc
问题内容: 我知道我可以使用localstorage或SQLite,但是我不确定如何准确地做到这一点。 在我的应用程序中,我在登录控制器中获取会话令牌,在该控制器中,我向服务器发出发布请求,并获得会话令牌。 我不确定如何使此令牌在全局范围内可访问。 PS:我是AngularJs的新手。 问题答案: 从服务器获取令牌后,在控制器中 你可以说 然后,当您想获取令牌(例如在另一个控制器中)时,您所要做的
问题内容: 我正在尝试在我的Express应用程序中使用redis进行会话。 我执行以下操作: 稍后,在我的应用程序中,如果执行以下操作: 我得到: 无法读取未定义的属性“ someProperty” 这表明req.session是未定义的 (我可以从config部分的console.log条目中看到) 我肯定有redis运行,并且可以看到我的应用最初连接到它(使用redis-cli监视器) 问题