在Ruby on Rails上使用Redis Store的方法_ruby专题

Redis Store 是一个专为Ruby应用程序服务的工具包,原生就支持分片,主从复制,编组以及超时和命名空间。此外,在Ruby on Rails上使用它也是非常的简单。
 如何使用:
对于在Rails上使用Redis Store,首先我们需要在Gemfile文件中添加入口
 

gem 'redis-rails'
gem 'redis-rack-cache' # optional

然后我们就会有如下选择:

## Cache Store
# config/environments/production.rb
config.cache_store = :redis_store

## Session Store
# config/initializers/session_store.rb
MyApplication::Application.config.session_store :redis_store,
servers: ['redis://:secret@192.168.6.23:6379/0', 'redis://:secret@192.168.6.99:6379/1']

## HTTP Cache
# config.ru
require 'rack'
require 'rack/cache'
require 'redis-rack-cache'

use Rack::Cache,
metastore: 'redis://localhost:6379/0/metastore',
entitystore: 'redis://localhost:6380/0/entitystore'

如你所见,使用这个插件相当简单,但现在我要教你如何去管理这些设置。
第一个案例不言自明,我们来说说用 ActiveSupport 来加载Redis Store。这里请记住,Redis的contraire仅仅只能支持字符串,所以可以利用序列化与反序列化技术来存储任何对象。

这里的第二个案例就稍微复杂一点。首先,我们需要使用一个服务器集群。这里再重复一遍,Redis Store支持分片,也就意味着Http会话在两台服务器之间都是互相透明可见的。

最后一个案例主要涉及到Ruby的Http缓存代理,这些缓存的主要作用就是为了加快Http响应,而且也是以名值对的方式来存储meta数据以及entity实体对象的,这里也提一下,如果我们存储的都是普通的字符串文本,那么 mashalling模块也是不需要启动的。

虽然说了这么多,但就上面几点也只是 Redis store 所有功能的一小部分而已,其实它还支持Rack,Sinatra以及I18n。

总结

我个人认为 Redis 基本算是你的服务器环境必须用用的一个插件,它速度快而且可使用范围广泛,比如可以作为数据库,缓存,分片机等等,真算得上是一个不错的工具。然而任何好处都是有代价的:与Rails一样,为了使用它,你必须花费大量的时间与安装与配置才能在性能,以及内存使用上找到一个绝佳的平衡点。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索redis
ruby
ruby on rails、ruby on rails 教程、ruby rails、ruby on rails 安装、ruby on rails 指南,以便于您获取更多的相关知识。

时间: 2024-10-03 16:43:40

在Ruby on Rails上使用Redis Store的方法_ruby专题的相关文章

Ubuntu上配置Ruby on Rails框架及RubyMine IDE开发环境_ruby专题

准备阶段的碎碎念 在virtualbox安装过程中由于这样那样的原因,产生许多坑. 坑1.关于终端,一定要使用启动器打开 安装完虚拟机,进入系统,我们便会遇到第一个坑,终端软件,建议大家都使用启动器打开终端, 千万不要使用文件管理器,进入文件夹,再右键"在终端中打开",这个时候,环境变量加载不上,尤其在非桌面文件夹进入时.终端加载不上环境变量,大多的软件都没法在终端中执行. 打开终端时,一定要通过启动器,所谓启动器,就是在bantu中放在桌面左侧的侧边栏,很像windows中的快捷方式

Windows下Ruby on Rails开发环境安装配置图文教程_ruby专题

本文详细介绍如何在Windows配置Ruby on Rails 开发环境,希望对ROR初学者能有帮助. 一.下载并安装Ruby Windows下安装Ruby最好选择 RubyInstaller(一键安装包). 下载地址: http://rubyforge.org/frs/?group_id=167 . 我们这里下载目前较新的rubyinstaller-1.9.3-p0.exe 一键安装包.这个安装包除了包含ruby本身,还有许多有用的扩展(比如gems)和 帮助文档. 双击安装,安装过程出现如下

对优化Ruby on Rails性能的一些办法的探究_ruby专题

1.导致你的 Rails 应用变慢无非以下两个原因: 在不应该将 Ruby and Rails 作为首选的地方使用 Ruby and Rails.(用 Ruby and Rails 做了不擅长做的工作) 过度的消耗内存导致需要利用大量的时间进行垃圾回收. Rails 是个令人愉快的框架,而且 Ruby 也是一个简洁而优雅的语言.但是如果它被滥用,那会相当的影响性能.有很多工作并不适合用 Ruby and Rails,你最好使用其它的工具,比如,数据库在大数据处理上优势明显,R 语言特别适合做统计

简单介绍Ruby on Rails对PostgreSQL数组类型的支持_ruby专题

 我非常高兴在宣布Rails 4.0 现在支持 PostgreSQL 数组类型. 你可以方便的在migration通过 :array => true里创建数组类型的字段. 创建数组类型的字段的时候还可以添加其它的选项(length,default,等等)   create_table :table_with_arrays do |t| t.integer :int_array, :array => true # integer[] t.integer :int_array, :array =&

对Ruby on Rails进行高效的单元测试的教程_ruby专题

在笔者开发的系统中,有大量的数据需要分析,不仅要求数据分析准确,而且对速度也有一定的要求的.没有写测试代码之前,笔者用几个很大的方法来实现这种需求.结果可想而知,代码繁杂,维护困难,难于扩展.借业务调整的机会,笔者痛定思痛,决定从测试代码做起,并随着不断地学习和应用,慢慢体会到测试代码的好处.     改变思路:能做到从需求到代码的过程转换,逐步细化:     简化代码:力图让每个方法都很小,只专注一件事:     优化代码:当测试代码写不出来,或者需要写很长的时候,说明代码是有问题的,是可以被

Ruby on Rails迁移时的一些注意事项_ruby专题

    把 schema.rb 保存在版本管控之下.     使用 rake db:scheme:load 取代 rake db:migrate 来初始化空的数据库.     使用 rake db:test:prepare 来更新测试数据库的 schema.     避免在表里设置缺省数据.使用模型层来取代. def amount self[:amount] or 0 end     然而 self[:attr_name] 的使用被视为相当常见的,你也可以考虑使用更罗嗦的(争议地可读性更高的)

Ruby on Rails中的ActiveResource使用详解_ruby专题

当 HTTP 响应是一个与存在的格式不同的格式时(XML 和 JSON),需要某些额外的格式解析,创一个你惯用的格式,并在类别中使用它.惯用的格式应当实作下列方法:extension, mime_type,     encode 以及 decode.      module ActiveResource module Formats module Extend module CSVFormat extend self def extension 'csv' end def mime_type '

Ruby与Ruby on Rails框架环境搭建的简明教程_ruby专题

安装Ruby与升级RubyGems提示:在Ubuntu环境下安装过程中,如果提示权限问题,可以使用sudo make和sudo make install. 1.Ruby安装 wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.gz \ && tar -xzvf ruby-1.9.3-p125.tar.gz \ && cd ruby-1.9.3-p125 \ && ./configure

Ruby On Rails中如何避免N+1问题_ruby专题

N+1问题 N+1问题是数据库访问中最常见的一个性能问题,首先介绍一下什么是N+1问题: 举个例子,我们数据库中有两张表,一个是Customers,一个是Orders.Orders中含有一个外键customer_id,指向了Customers的主键id. 想要得到所有Customer以及其分别对应的Order,一种写法是 SELECT * FROM Customers; 对于每一个Customer: SELECT * FROM Orders WHERE Orders.customer_id =