2017-04-03 52 views
3

我使用:Action Cable 5是否需要Redis?

rails (5.0.2) 
actioncable (5.0.2) 
puma (3.8.2) 

我有一個Rails 5作用電纜演示聊天和一年前它並沒有Redis的工作 - 現在它呢! (在bundle update之後)。

換句話說,我成功地讓我的演示聊天工作在開發模式沒有Redis。我設置the config/cable.yml這樣的:

development: 
    adapter: async 

test: 
    adapter: async 

production: 
    adapter: async 

,並開始rails c。就是這樣 - 聊天工作,沒問題。那麼Redis顯然不再需要了 - 不像一年前的時代?

此外,我找到了一種方法讓我的演示聊天工作與Redis。要做到這一點我改變the config/cable.yml這樣的:

redis: &redis 
    adapter: redis 
    url: redis://localhost:6379/1 

production: *redis 
development: *redis 
test: *redis 

不是增加gem 'redis', '~>3.2'我的Gemfile(+ bundle install),啓動Redis的redis-server,然後rails c

所以我的問題是:

  1. 是否作用電纜5需要Redis的工作? (看起來不喜歡,但我不確定)。
  2. 如果(顯然)Action Cable 5可以工作帶或不帶Redis - 有什麼區別?
  3. 什麼是gem 'redis', '~>3.2'?它是爲了什麼?

通常我不知道現在什麼是Action Red5使用(非使用?)的Action Cable 5的正確用法。開發或生產模式有什麼不同?

回答

3

Action Cable 5是否需要Redis?

否。根據documentation,可以使用其他適配器。

作用電纜提供了訂閱適配器接口,以處理其 發佈訂閱內部。默認情況下,包括異步,內聯,PostgreSQL, 均勻Redis和非均衡Redis適配器。新Rails應用程序中的 默認適配器是異步(異步) 適配器。

問題:

不作用電纜5需要Redis的工作? (看起來像不,但我不知道 )。

No.

如果(顯然)Action Cable 5可以使用或不使用Redis - 有什麼區別?

在ActionCable的情況下沒有區別,它使用抽象adapter並且不依賴於傳輸協議。

什麼是gem 'redis', '~>3.2'?它是爲了什麼?

它用於redis並提供與redis-server進行通信的接口。