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??梢允褂胷edis.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緩存。