和大家分享一下个人关于Rails.cache的浅显的认识,望大家指教。

1.Rails.cache是什么

它是Rails中的缓存,拥有所有缓存的共同点,它是为了提升网站性能。

2.Rails中Rails.cache的存储系统。

本身常用的有四种,可以根据不同的环境进行选择不同的存储系统。

  • FileStore,利用文件系统缓存文件,能够在多个应用间共享缓存,但是这样会不断的增加硬盘使用。
  • MemoryStore, Ruby 进程使用共同的内存,默认大小为32M,,虽然可以更改这个限制,但是不适合大型的部署,并且它不能用于多个应用共享缓存。
  • MemCacheStore, 这种方式使用 Memcached 最为后端缓存服务,它提供了高性能的、集中式的缓存服务,可以在多个应用间共享缓存,这是一种适合中大型商业应用的选择。
  • NullStore, 适合开发和测试环境的配置,它不会储存任何东西,但是可以正常调试 Rails.cache 中的方法。

3. Rails项目的自定义配置存储系统。

这里我以使用redis来作为Rails.cache的存储系统进行介绍

3.1 为什么会选redis

使用redis,能够通过 redis 的命令快速实现,比关系型数据库拥有更快的读写速度,且更适合储存非结构化数据。

3.2 如何配置

  • 确保你的系统已经安装了redis数据库(具体怎么安装,这里不做阐述)
  • 在你的gemfile文件中,加入gem 'redis-rails'这一行,然后bundle install。
  • 一般初始化的默认配置可以在development.rb,production.rb,test.rb文件中单独设置适用于不同环境的存储系统;我选择直接在application.rb中写配置信息。
配置信息(必须):
config.action_controller.perform_caching = true # 确保开启缓存,dev环境下默认是没有开启的。
config.cache_store = :redis_store, {
    host: 'localhost',
    port: '6379',
    db: 1, # 这是整数,可以理解为redis数据库中的表标志,默认是16个数据库,可从0-15中取值
    password: '',
    expires_in: 5.hours # 过期时间的设置
}

4. Rails.cache常见用法。

主要有3种:

  • 片段缓存
    继续。。
  • 页面缓存
    继续。。
  • 方法缓存
    继续。。
内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!