Giter Club home page Giter Club logo

redis_sample_1's Introduction

redisの学習 1

 Ruby on RailsのActionCableは、Redisと関係がある。以下参考。

個人的にPub/SubモデルおよびはRedisについて知りたいと思っていたので、学習する。

リンク

 Redisに関するリンクを以下に示す。

上記の中でもWebsocketとRedis Pub/Sub - Qiitaが興味深いと感じる。Dockerコンテナでredisサーバとクライアントを立てて接続する。またWebSocketについても言及している。RailsでActionCableを使う上では確認しておきたい内容だと思う。

WebsocketとRedisに関して以下も追加でリンクを以下に示す。

Node.jsでWebsocketを使う方法についてのブログである。また以下も参考。

Node.jsコンテナに関しては以下。

学習目標

 作業の方針としては WebsocketとRedis Pub/Sub - Qiita に近い内容を自分でやってみる。理由は以下の通り。

  1. このブログはわかりやすくまとめてくれている反面、私の疑問点が解決していないから。(私の認識がどう間違っているか明確でない)(←結果として誤った理解をしている点が一部明らかになった。その点は実際に手を動かして学習して良かったと感じる)
  2. Dockerに慣れるため。
  3. Websocketについて学習するため。
  4. もう少し複雑な構成で実験したい。(←複雑な構成の最も単純かつ学習に必要最低限の構成であったため今回はこのままにする)

しかし、この内容を実行するためには以下の事項が必要。

  1. redisの前にNode.jsコンテナの作成が必要。
  2. Node.jsでWebsocketのコードを作る必要がある。

上記までの目的を一度に達成することは難しいので分割していく。学習目標および項目を以下に示す。

  1. Redisコンテナを使って操作の基本を練習
  2. Node.jsコンテナを使ってWebsocketサーバを作る(Railsだと大きすぎるのでNode.jsで作る)
  3. RedisとWebsocketサーバをつなげる
  4. Pub/Subの動作を確認する
  5. 構成を複雑にする(理解があっているか確認するのが目的)

それぞれディレクトリに分けて学習する。

ディレクトリ構成

 学習目標・項目をディレクトリに分ける。これは、分けたほうが後から見返しやすくなると考えたので、復習の意味合いを込めてそうしている。

ディレクトリと学習目標の対応は以下の通り。

ディレクトリ 学習目標・項目
no1_redis_basic Redisコンテナを使って操作の基本を練習
no2_websocket Node.jsコンテナを使ってWebsocketサーバを作る
no3_webdocket_with_redis 単純にRedisとWebsocketサーバをつなげる
no4_simple_pubsub Pub/Subの動作を確認する
no5_complex_system 構成を複雑にする

学習終了

 ひとまずno1〜no5までを完了し学習目標を達成した。しかし、以下の参考サイトを自分で再現しようと以下のサイトのコードをほとんど参考にせずに作った影響か、参考サイトのコードがよくわからない状態だ(この点はno5のreadme.mdに記述している)。
しかし、学習不足ではあると思うが、自分でwebsocket+redis(Pub/Sub)を使ったチャットアプリもどきを作れた。そのため最低限の学習はできていると判断し学習を終了することにした。追加学習はまたリポジトリを分けて実行する。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.