RedisインストールからPub/Sub機能を使うまで
Redisとは?
Redisは、データ構造サーバーを実装するオープンソースソフトウェアプロジェクトである。いわゆるNoSQLデータベースの一つであり、Redis Labs(英語版)がスポンサーとなって開発されている。ネットワーク接続されたインメモリデータベースでかつキー・バリュー型データベース(英語版)であり、オプションとして永続性を持つ。
一言で説明すると、Redisはオープンソースのインメモリデータストア。データベースやキャッシュ、メッセージブローカーとして利用されている。
github: https://github.com/antirez/redis
Pub/Sub (Publish/Subscribe) とは?
日本語では出版-購読型モデルとも呼ばれる。
非同期メッセージングパラダイムの一種であり、メッセージの送信者(出版側)が特定の受信者(購読側)を想定せずにメッセージを送るようプログラムされたものである。出版されたメッセージにはクラス分けされ、購読者に関する知識を持たない。購読側は興味のあるクラスを指定しておき、そのクラスに属するメッセージだけを受け取り、出版者についての知識を持たない。出版側と購読側の結合度が低いため、スケーラビリティがよく、動的なネットワーク構成に対応可能である。
Installing Redis
$ wget http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make
make完了後、redis-stable/src/ に様々な実行可能ファイルが生成される。
今回は、redis-server, redis-cli を利用する。
- redis-server is the Redis Server itself.
- redis-sentinel is the Redis Sentinel executable (monitoring and failover).
- redis-cli is the command line interface utility to talk with Redis.
- redis-benchmark is used to check Redis performances.
- redis-check-aof and redis-check-dump are useful in the rare event of corrupted data files.
Pub/Sub機能を試す
- Redis サーバを起動する
- クライアント1 で、channel 'foo' を subscribe する
- クライアント2 で、subscribeされている channel 'foo' に対して message 'hello world!' を publish する
step1. start redis server
$ ./src/redis-server
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.2.9 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: xxxx
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
でっかいロゴが出てきた。
step2. クライアント1で channel 'foo' を subscribe する
[client 1]
$ ./scr/redis-cli
127.0.0.1:6379> SUBSCRIBE foo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
step3. クライアント2 で、message 'hello world!' を publish する
[client 2]
$ ./src/redis-cli
127.0.0.1:6379> PUBLISH foo 'hello world!'
(integer) 1
127.0.0.1:6379>
publishすると、client 1のスクリーン上に以下のようにメッセージ 'hello world!' が表示される
[client 1]
1) "message"
2) "foo"
3) "hello world!"
references
この記事は自身のブログからの転載です
http://tic40.hatenablog.com/entry/2017/06/23/151802
Author And Source
この問題について(RedisインストールからPub/Sub機能を使うまで), 我々は、より多くの情報をここで見つけました https://qiita.com/tic40/items/9b5e95eab12c8cba8211著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .