在存储你的“会话”数据时,Rails 有很多选项。每个选项即好也不好。我们先列出选
项的清单,然后再比较它们。
“会话”存储机制使用DEFAULT_SESSION_OPTIONS 哈希表的:database_manager 参数设
置。其它的选择是:
1、:database_manager => CGI::Session::Pstore 这是Rails 使用的缺省“会话”存储
机制。每个“会话”的数据以Pstore 格式存储在一个文本文件中。这种格式以Marshal 形式
保存对象,它允许任何的可序列化对象被存储在“会话”中。这种机制支持额外的配置选
项:prefix 和:tmpdir。
2、:database_manager => CGI::Session::ActiveRecordStore 使用ActiveRecordStore
你可以存储你的“会话”数据在你的应用程序的数据库中。按下面的DLL 创建个名字为session
的表(这是MySQL 版本—你可能必须对你的数据库引擎做适当调整)。这个存储使用YAML 来序
列化它的对象。
create table sessions (
id int(11) not null auto_increment,
sessid varchar(255),
data text,
updated_at datetime default NULL,
primary key(id),
index session_index (sessid)
);
sessid 列持有“会话”id—它的缺省长度为32 个字符。最好是索引这个列,以便于用
它查找“会话”数据。如果你添加created_at 和update_at 名字的列,“活动记录”将自动
在session 表内标记此行的“时间戳”—稍后我们会看到这个主意有多么的好!
3、:database_manager => CGI::Session::DrbStore DRb 是个协议,它允许Ruby 处理
一个网络连接上的共享对象。使用DrbStore 数据管理,Rails 可存储“会话”数据在一个DRb
服务器上(你可以在外部的web 应用程序上管理它)。你运行在分布式的服务器上的应用程序
的多个实例可以访问同一个DRb 存储。用于Rails 的简单DRb 服务以包括在Rails 中了。DRb
使用Marshal 来序列化对象。
4、:database_manager => CGI::Session::MemCacheStore memcached 是个自由变量,
缓存来自于Danga Inteactive 的分布式对象。Rails MemCacheStore 使用Michael Granger
的Ruby 接口来对存储的“会话” memcached 。Memcached 比其它选择要复杂很多,或许你
对它感兴趣就是因为你的站点已经使用了它。
5、:database_manager => CGI::Session::MemoryStore 这个选项存储“会话”数据在
应用程序的内存中。它不需要烦人的序列化,任何对象都被存储在内存“会话”中。像我们
稍后会看到的,对于Rails 应用程序来说,这通常不是个好主意。
6、:database_manager => CGI::Session::FileStore “会话”数据被存储在文本文件
中。对于Rails 应用程序来说它没有什么用处,因为它的内容必须是字符串。这种机制支持
额外的配置选项:prefix,:suffix 和:tempdir。
如果你的应用程序不需要“会话”(也不使用flash,它也用于存储“会话”数据),你
可以关闭Rails 的“会话”处理,通过下面设置
::ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS = false
分享到:
相关推荐
适用于 Apache Tomcat 的 Redis 支持的非粘性会话存储Apache Tomcat 的 Redis 会话管理器概述会话管理器实现将会话存储在 Redis 中,以便轻松地在 Tomcat 服务器集群中分发请求。会话实现为非粘性 - 也就是说,每个...
用于 Connect 的 Redis 会话存储 connect-redis为 Express 提供 Redis 会话存储。安装connect-redis需要express-session安装以下兼容的 Redis 客户端之一redisioredis安装方式redisnpm install redis connect-redis ...
基于 Redis 的 Rails 简单会话存储。Redis 会话存储 一个简单的基于 Redis 的 Rails 会话存储。但是,您可能会问,既然有redis-store ,为什么还要使用它呢?redis-store 是一种通用解决方案,我发现它无法与 Rails ...
NodeJS 和 Redis 的高级会话存储Redis 会话这是一个 Node.js 模块,用于将会话保存在 Redis 数据存储中并添加一些有用的方法。此模块的主要目的是将会话推广到各个应用服务器平台。我们使用 nginx 反向代理将网站的...
koa 会话存储使用内存、redis 或其他方式。通用会话 koa 的通用会话中间件,可轻松与redis或mongo等自定义存储一起使用,支持延迟会话 getter。此中间件仅在手动设置 session 时才会设置 cookie。每次修改 session ...
使用 Redis 的 gorilla/sessions 会话存储后端。重新恢复 gorilla/sessions的会话存储后端- src。要求依赖于Redigo Redis 库。安装go get gopkg.in/boj/redistore.v1文档可在godoc.org上获取。有关底层接口的完整...
connect-memcached, 用于连接的Memcached会话存储 连接 memcachedMemcached会话存储,使用节点 Memcached 与缓存服务器进行通信。安装通过 npm:$ npm install connect-memcached示例var express =
connect-mongo, 用于表示和连接的MongoDB会话存储 连接 mongo用于连接和 Express的MongoDB会话存储 兼容性支持 5.0支持所有连接版本支持 Mongoose >= 4.1.2 支持原生MongoDB驱动程序 >= 2.
语言 Vue插件可用于Vue上下文中的本地存储,会话存储和内存存储jsFiddle示例 安装CDN 推荐: : ,它将在发布到npm时立即反映最新版本。 您也可以在浏览npm软件包的源代码。 也可以在或,但是这两个服务需要花费一些...
connect-mongodb-session, 轻量级MongoDB支持用于连接和表达的会话存储 connect-mongodb-session:用于连接的-backed会话存储和 Express 。 这意味着它是一个很好的维护和完全功能的模块,如连接 mongo 。 ...
java的springboot框架获取企业微信会话内容进行存档,支持windows部署、linux下的docker部署; 能学到什么:企业微信获取会话的流程;企业微信的获取会话内容的公钥私钥加解密;获取企业微信会话内容; 阅读建议:此...
django-redis-sessions为您的会话提供 Redis 数据库后端安装可用设置变更日志安装运行pip install django-redis-sessions或者下载 tarball 并运行python setup.py install,对于 Django 运行pip install django-...
本篇将深入探讨“会话存储类”的相关知识点,包括会话的概念、工作原理、常见的会话存储机制以及如何实现一个会话存储类。 1. **会话(Session)的基本概念** - 会话是用户在与网站交互过程中的一系列连续操作,它...
19 种不同的服务器端会话存储可供选择,包括 PostgreSQL、MySQL、MSSQL、SQLite、Redis 等。还支持自定义会话存储。支持每个请求的多个会话、‘闪存’消息、会话令牌再生、空闲和绝对会话超时以及‘记住我’功能。...
会话的 Redis 存储 快速入门下载并安装go get -v github.com/go-session/redis/v3创建文件server.gopackage mainimport ( "context" "fmt" ...{ session.InitManager( session.SetStore(redis.NewRedisStore(&...= nil {
提供对Blazor应用程序中会话存储的访问的库 正在安装 您可以使用以下命令从NuGet安装: Install-Package Blazored.SessionStorage 或通过Visual Studio程序包管理器。 建立 您将需要在Blazor Server的Startup.cs...
总的来说,这些JAR文件组合在一起,提供了在Tomcat 7环境中使用Redis作为会话存储的完整解决方案。通过这种方式,可以有效地实现跨服务器的会话共享,提高系统的可扩展性和可靠性。同时,利用Redis的高并发特性,...
Connect 的 MongoDB 会话存储。 使用存储在 MongoDB 中的会话的内存缓存 用于单主机应用程序并具有 速度就像内存中的会话 持久性如 MongoDB 存储会话( ) 示例使用 var session = require('express-session'); var...
使用async / await v1.0.4的Koa会话的本地会话存储 这是本地系统内存中koa会话存储的一种实现。 它打算用作测试/开发目的的内存会话存储,因为没有任何数据可持久存储到永久存储中。 目录 安装 : npm install --...
电影入门会话存储是Web开发中的一个重要概念,特别是在JavaScript环境下。在Web应用中,我们经常需要在用户浏览器中暂时保存数据,以便在用户与页面交互时维持某种状态。这就是会话存储(Session Storage)的作用。...