首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

用redis治理nitrogen中的session

2012-08-24 
用redis管理nitrogen中的sessionnitrogen使用中session问题nitrogen中的session在集群情况下会找不到,经常

用redis管理nitrogen中的session
nitrogen使用中session问题

nitrogen中的session在集群情况下会找不到,经常会出现重新登录情况,试图修改成为mnesia管理session,在节点超过一定数量时mnesia同步机制会出现同步慢的问题,为此决定再次修改为redis来管理session。

?

修改为redis管理session

?

1 在nitrogen中调用wf:session/2设置session时调用了session_handler:set_value/2,回调behaviour (session_handler),wf_handler:call/3,这里实现了一个简单的session_handler,只要实现自己的session_handler行为,就可以了,在wf:context中会配置具体调用哪些handler,只要修改make_handler(session_handler, simple_session_handler), %simple_session_handler), 为自己的实现即可。2 我实现的redis_session_handler

?

?3 ?在上面代码中我使用了erldis作为redis的erlang客户端,经测试未发现问题,很稳定。

?

4 问题: 以上代码实现中查阅过redis手册,想找到类似 setex直接设置过期时间的命令,但没有找到,用hash 实现是为了节省内存与方便管理,如有更好解决方案大家回复交流。

热点排行