Redis(来自REmote DIctionary Server)是一个基于内存的非关系型数据库管理系统,它可以用作数据库、缓存和消息队列。Redis拥有高性能和丰富的数据类型,最重要的是它支持持久化,即使机器故障,数据也能够得到保存。
Redis最初是一个远程字典服务器,它使用键值对存储数据,可以支持字符串,哈希表,列表,集合和有序集合等方式存储数据。Redis还支持订阅和发布消息。它使用C语言编写,但支持多种语言的客户端。
在 Ruby on Rails应用中,Redis的出色表现使其成为一个非常有用的工具。使用 Redis缓存数据可以大幅提高应用的性能,而 Redis的发布和订阅功能则可以使开发人员轻松地在应用程序之间传输消息。
Redis如何在Ruby on Rails中工作?
Ruby on Rails通过gem包中的redis-rb和hiredis进行Redis的客户端支持。使用Redis-Cli进行交互式连接到Redis服务器时,可以使用命令清单操作键值存储,内置哈希表,列表,集合,有序集合,bitmap和其他数据结构。
在Rails中,需要在Gemfile中增加gem 'redis',然后使用 bundle install安装gem包以便使用redis。可以使用redis.rb等自定义文件访问redis数据库。这些文件定义了任何必需变量或常量,如redis数据库密码、主机端口和连接对象。
我们可以在控制器或模型中使用以下几个库文件来添加Redis支持:
Redis activesupport
Redis objects
Redis store
在Rails中使用Redis实现缓存
在Rails中使用Redis来作为应用程序的缓存可以减少查询数据库的次数,提高应用的性能。我们可以使用 rails cache方法使用Redis来存储缓存数据,cache方法可以在应用的任何位置使用,例如控制器或视图模板文件中。cache方法采用了键值对的方式进行数据存储,其中data变量是存储在Redis中的数据。
需要了解的是,当使用 Rails的缓存机制时,系统内部实际上代表调用了 ActiveSupport::Cache::RedisCacheStore类。在Redis中缓存存储中,存储键和值的过程非常重要。每当缓存键运行到过期时间,存储值就会自动从缓存数据库中移除。这是因为Redis缓存中每个键都伴随有生存时间的概念。
使用 redis-rails提供的帮助器需要将其添加到 config/initializers 之中。在添加 Redis作为缓存后,如果您的许多操作由于爆炸转变而出现,可以使用 Rails.cache.clear指令移除Redis缓存。