当进行物联网处理进行处理间通信时,Redis是非常方便的选择
在使用传感器、树莓派和服务器等设备对多个地点的温度进行测量和收集时,使用Redis可以使处理变得简单。
希望建立的环境
機器構成として
-
- データをシリアル出力できるセンサー
-
- 複数のセンサーからのデータを受けるラズパイ(とか)
- 複数のラズパイ(とか)からのデータを集約するサーバ
考虑以下情况:
我们假设树莓派上运行着 Raspbian,使用 Perl、Python、Ruby(或者 C 语言)来开发处理程序。
物联网处理
在这种环境下,需要定期接收传感器数据并将其传递给其他服务器。然而,如果将数据传输给其他服务器的方式是通过REST,可能会花费相当长的时间(例如建立会话等)。


请使用消息队列来执行以下任务。
在物联网处理中,
-
- 異常値観測 -> 警報発報 のような常時監視
-
- 一定時間毎に,過去数点のデータの平均を求めるようなサマリ情報収集
- 簡単な解析
如果在上述结构中让树莓派负责部分,那整个系统的构建将变得简单(对吧)。

使用Redis会带来愉悦的事情。
使用Redis作为可指定长度的FIFO消息队列是很方便的。
令人欣喜的事情之一是,实施变得简单。
通过使用rpush和ltrim,您可以轻松实现具有指定长度的FIFO。以下是发送端实现的示例。
use Redis;
use Redis::List;
my $redis = Redis->new(server => 'localhost:6379');
my $data = "Recieved Data";
$redis->rpush('hoge', $data);
$redis->ltrim('hoge', -10, -1); # 最新10回分
令人开心的事情之二:数据格式自由
因为大部分的快乐来自于Redis的功能,所以没有列举的意义,但字符串传递的简单性是非常重要的优点。
从传感器传来的数据是以字符串的形式传递的,所以直接传递这个字符串是非常令人高兴的。
令人高兴的事情之三:多语言支持
使用Redis接口,在发送方和接收方使用不同的语言开发,会非常方便。
总结
在进行IoT处理时,进行进程间通信时,Redis非常有用。说”超越”是在开玩笑。
事实上,我们在使用树莓派进行的项目中使用了Redis,多人并行开发非常顺利。
最近的树莓派性能也很高,加上Web服务技术,IoT处理变得相当容易。