`
jbf034
  • 浏览: 153188 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多
在存储你的“会话”数据时,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
分享到:
评论

相关推荐

    connect-memcached, 用于连接的Memcached会话存储.zip

    connect-memcached, 用于连接的Memcached会话存储 连接 memcachedMemcached会话存储,使用节点 Memcached 与缓存服务器进行通信。安装通过 npm:$ npm install connect-memcached示例var express =

    connect-mongo, 用于表示和连接的MongoDB会话存储.zip

    connect-mongo, 用于表示和连接的MongoDB会话存储 连接 mongo用于连接和 Express的MongoDB会话存储 兼容性支持 5.0支持所有连接版本支持 Mongoose >= 4.1.2 支持原生MongoDB驱动程序 >= 2.

    vue-ls:Vue插件,用于Vue上下文中的本地存储,会话存储和内存存储

    语言 Vue插件可用于Vue上下文中的本地存储,会话存储和内存存储jsFiddle示例 安装CDN 推荐: : ,它将在发布到npm时立即反映最新版本。 您也可以在浏览npm软件包的源代码。 也可以在或,但是这两个服务需要花费一些...

    connect-mongodb-session, 轻量级MongoDB支持用于连接和表达的会话存储.zip

    connect-mongodb-session, 轻量级MongoDB支持用于连接和表达的会话存储 connect-mongodb-session:用于连接的-backed会话存储和 Express 。 这意味着它是一个很好的维护和完全功能的模块,如连接 mongo 。 ...

    会话:会话存储类

    本篇将深入探讨“会话存储类”的相关知识点,包括会话的概念、工作原理、常见的会话存储机制以及如何实现一个会话存储类。 1. **会话(Session)的基本概念** - 会话是用户在与网站交互过程中的一系列连续操作,它...

    SessionStorage:提供对Blazor应用程序中的会话存储的访问的库

    提供对Blazor应用程序中会话存储的访问的库 正在安装 您可以使用以下命令从NuGet安装: Install-Package Blazored.SessionStorage 或通过Visual Studio程序包管理器。 建立 您将需要在Blazor Server的Startup.cs...

    Tomcat7会话共享所需JAR

    总的来说,这些JAR文件组合在一起,提供了在Tomcat 7环境中使用Redis作为会话存储的完整解决方案。通过这种方式,可以有效地实现跨服务器的会话共享,提高系统的可扩展性和可靠性。同时,利用Redis的高并发特性,...

    connect-mongo-memory:Connect 的 MongoDB 会话存储。 使用存储在 MongoDB 中的会话的内存缓存

    Connect 的 MongoDB 会话存储。 使用存储在 MongoDB 中的会话的内存缓存 用于单主机应用程序并具有 速度就像内存中的会话 持久性如 MongoDB 存储会话( ) 示例使用 var session = require('express-session'); var...

    koa-session-local:Koa会话的本地会话存储

    使用async / await v1.0.4的Koa会话的本地会话存储 这是本地系统内存中koa会话存储的一种实现。 它打算用作测试/开发目的的内存会话存储,因为没有任何数据可持久存储到永久存储中。 目录 安装 : npm install --...

    电影入门会话存储

    电影入门会话存储是Web开发中的一个重要概念,特别是在JavaScript环境下。在Web应用中,我们经常需要在用户浏览器中暂时保存数据,以便在用户与页面交互时维持某种状态。这就是会话存储(Session Storage)的作用。...

    session-cache:任务的会话存储

    会话缓存 任务的会话存储。用安装npm i session-cache --save运行测试安装开发依赖项。 npm i -d && npm test用法使用会话在gulp任务之间传递数据的示例。 var session = require ( 'session-cache' ) ( 'your app' ...

    mssql-session-store:使用SQL Server实现快速会话存储

    mssql会话存储使用SQL Server实现快速会话存储。 使用连接到数据库。安装$ npm install mssql-session-store重要的: 商店希望此表存在于您的数据库中。 create table Session( sessionId nvarchar(450) not null ...

    WebLogic_Cluster_HTTP会话复制失败的故障处理总结

    2. **会话持久化类型概述**:WebLogic提供多种会话存储方式,包括内存、文件系统持久性、JDBC持久性、基于cookie的会话持久性和集群内的内存复制。了解每种类型的特点及适用场景对排查问题至关重要。 3. **诊断策略*...

    intraweb会话管理经典实例

    2. **会话存储**:Intraweb提供了多种存储机制来保存会话数据,如内存、数据库或文件系统。选择哪种方式取决于应用的需求,例如,如果需要在多个服务器之间共享会话数据,可能需要将会话数据存储在数据库中。 3. **...

    如何用SQL Server保持会话状态

    设置 SQL Server 作为会话存储还需要创建一个名为 ASPState 的特殊数据库。`.NET Framework` 自带的安装文件包括了创建、卸载此数据库的脚本。例如,运行 `InstallSqlState.sql` 脚本将创建 ASPState 数据库,用于...

    token-session-redis:用于快速令牌会话的 Redis 会话存储

    token-session-redis 是一个由支持的 Redis 会话存储,速度非常快:)。 SETEX命令需要 redis >= 2.0.0 。安装 $ npm install token-session-redisExpress 3.x 用户注意事项为了使用最新的token-session-redis您还必须...

    hiro会话管理共12页.pdf.zip

    5. **会话存储**:会话数据可以存储在多种地方,如内存(如In-Memory Session)、数据库、文件系统或者专门的会话存储服务(如Redis或Memcached)。 6. **会话复制**:在分布式系统中,会话复制用于确保用户会话在...

    ember-cli-storage:EmberJS插件,用于访问浏览器中的本地和会话存储

    与本地和会话存储进行交互的简单方法。 兼容性 Ember.js v3.12或更高版本 Ember CLI v2.13或更高版本 Node.js v10或更高版本 安装 ember install @onehilltech/ember-cli-storage 用法 该附加组件使用装饰器来设置...

    leancloud-session-storage:LeanCloud引擎的会话存储

    其中,"LeanCloud引擎的会话存储"是其提供的一项重要功能,主要用于管理用户会话。 会话(Session)存储是一种在浏览器端保存数据的技术,它与Cookie类似,但主要区别在于数据的存储位置和生命周期。Cookie存储的...

    cookie 会话的操作

    - 存储位置:Cookie存储在客户端,会话存储在服务器端。 - 安全性:由于会话数据不在客户端,因此相对更安全,不易被篡改。 - 数据量:Cookie的大小有限制,一般不超过4KB,而会话可以存储大量数据。 - 生命周期...

Global site tag (gtag.js) - Google Analytics