Action Cable 5是否需要Redis?

pro*_*ils 5 ruby-on-rails redis actioncable

我用:

rails (5.0.2)
actioncable (5.0.2)
puma (3.8.2)
Run Code Online (Sandbox Code Playgroud)

我有一个Rails 5动作电缆演示聊天和一年前它没有Redis不起作用 - 现在它确实!(之后bundle update).

换句话说,我成功地使我的演示聊天在没有Redis的开发模式工作.我这样设置the config/cable.yml:

development:
  adapter: async

test:
  adapter: async

production:
  adapter: async 
Run Code Online (Sandbox Code Playgroud)

并启动rails c.就是这样 - 聊天工作正常,没问题.所以Redis显然不再需要了 - 不像一年前的时代?

我还找到了一种让我的演示聊天与Redis一起工作的方法.为此,我改变the config/cable.yml如下:

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

production: *redis
development: *redis
test: *redis
Run Code Online (Sandbox Code Playgroud)

而不是添加gem 'redis', '~>3.2'到我的Gemfile(+ bundle install),redis-server然后启动Redis rails c.

所以我的问题是:

  1. Action Cable 5是否需要Redis才能工作?(看起来不行,但我不确定).
  2. 如果(显然)Action Cable 5可以使用或不使用Redis - 有什么区别?
  3. 什么是gem 'redis', '~>3.2'?它是为了什么?

一般来说,我不知道什么是Redis使用(非使用?)方面的Action Cable 5的正确用法.开发或生产模式有什么不同吗?

Зел*_*ный 6

动作电缆5是否需要Redis?

否。根据文档,它可以使用其他适配器。

Action Cable提供了订阅适配器接口来处理其pubsub内部。默认情况下,包括异步,内联,PostgreSQL,事件式Redis和非事件式Redis适配器。新的Rails应用程序中的默认适配器是异步(异步)适配器。

问题:

Action Cable 5是否需要Redis起作用?(看起来好像不是,但我不确定)。

没有。

如果(显然)动作电缆5可以在使用Redis或不使用Redis的情况下工作-有什么区别?

如果没有ActionCable,则使用抽象adapter并且不依赖于传输协议。

什么gem 'redis', '~>3.2'啊 这是为了什么

它用于redis,并提供与redis-server通信的接口。