(GoRails)ActionCable如何用Redis + 菜鸟redis教程

视频:

https://gorails.com/episodes/how-actioncable-uses-redis?autoplay=1

原理PubSub, 你进入一个频道,然后就能接收,和发布信息给频道中的所有人。

 

Redis CLI

假设已经安装redis。在terminal运行:

redis-cli

进入,后输入subscribe "chat"订阅频道:

subscribe "chat"   #'chat'是你定义的频道名字

显示:

Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "chat"
3) (integer) 1

在其他terminal新窗口,多开几个,同样订阅"chat"(和👆相同的步骤)

在其中一个termain退出再运行:

redis-cli

publish "chat" "hello!"其他terminal都能收到"hello"。

publish channel message
#第一个参数channel, 是你定义的频道名字
#第二个参数message,是你要广播的信息。

 


 

Rails

上一次视频:

建立了一个cable

class NotificationsChannel < ApplicationCable::Channel
  def subscribed
  # 当你加入频道,你只会收到你的通知。当创建一个订阅后,从客户端向服务器端传参数
  stream_from "notifications:#{current_user.id}"
  end

进入rails console,然后输入ActionCable.server.broadcast "notifications:11", {html: "<h1>hello</h1>"}

各个terminal都会收到hello。

 


 


 

 

菜鸟教程:http://www.runoob.com/redis/redis-install.html

超强详细Redis数据库入门教程https://my.oschina.net/javagg/blog/471433

Try redis:    http://try.redis.io/

 


 

Linux 下安装

下载地址:http://redis.io/download,下载最新稳定版本。详细的安装说明这个下载页面有。

$ wget http://download.redis.io/releases/redis-5.0.0.tar.gz
$ tar xzf redis-5.0.0.tar.gz
$ cd redis-5.0.0
$ make    #提取文件

 

make完后 redis-5.0.0目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下:

编译完成后,运行Redis。 

src/redis-server

可以和Redis交互,使用内建程序client:

src/redis-cli

或者使用brew下载。

 

Ubuntu 下安装

$sudo apt-get update
$sudo apt-get install redis-server

 

启动 Redis

$ redis-server

查看 redis 是否安装

redis-cli
//进入
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

 

27.0.0.1 是本机 IP ,6379 是 redis 服务端口。以上说明我们已经成功安装了redis。

 


 

Redis 配置

获得配置

语法:
redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

实例:
redis 127.0.0.1:6379> CONFIG GET loglevel

使用 * 号获取所有配置项:

 

编辑配置

你可以通过修改 redis.conf 文件或使用 CONFIG set 命令来修改配置(点击看具体配置参数)。

 


  

Redis 数据类型

 

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

 

String类型:

基本类型。使用SET,GET,声明和获取。

实例;

redis 127.0.0.1:6379> SET name "runoob"     # name其实是一个key, Redis的数据结构就是key/value对儿
OK
redis 127.0.0.1:6379> GET name
"runoob"

 

 

Hash(哈希)

 

Redis hash 是一个键值(key=>value)对集合。

 

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

 

语法:

 

HMSET key field value [field value ...]

# key是hash的名字,field/value是一个键值对儿

用HMGET key field,来获取值。

 

其他的暂时略,具体见http://www.runoob.com/redis/redis-data-types.html

 


  


 

Redis 命令

Redis 命令用于在 redis 服务上执行操作。

要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中。

$redis-cli

 

在远程服务上执行命令

如果需要在远程 redis 服务上执行命令,同样我们使用的也是 redis-cli 命令。

$ redis-cli -h host -p port -a password

 实例

$redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> PING

 


Redis 键(key)

Redis 键命令用于管理 redis 的键。

语法

Redis 键命令的基本语法如下:

redis 127.0.0.1:6379> COMMAND KEY_NAME

 

实例

127.0.0.1:6379> set myname "chenwei"
OK
127.0.0.1:6379> get myname
"chenwei"
127.0.0.1:6379> del myname #del是删除. 命令行执行成功后输出(integer) 1, 否则输出(integer) 0
(integer) 1                
127.0.0.1:6379> get myname
(nil)

  

keys常用相关命令:http://www.runoob.com/redis/redis-keys.html

命令大全:https://redis.io/commands


 

 

Redis的 pub/sub  (publish and subscribe)

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

Redis 客户端可以订阅任意数量的频道。

本博客的第一行视频连接就是讲解redis-cli的发布和订阅。

序号    命令及描述
1    PSUBSCRIBE pattern [pattern ...] 
订阅一个或多个符合给定模式的频道。
2 PUBSUB subcommand [argument [argument ...]] 查看订阅与发布系统状态。
3 PUBLISH channel message 将信息发送到指定的频道。
4 PUNSUBSCRIBE [pattern [pattern ...]] 退订所有给定模式的频道。
5 SUBSCRIBE channel [channel ...] 订阅给定的一个或多个频道的信息。
6 UNSUBSCRIBE [channel [channel ...]] 指退订给定的频道。

 

posted @ 2018-07-14 17:24  Mr-chen  阅读(282)  评论(0编辑  收藏  举报