ページ

2015年10月21日水曜日

Elixir/Phoenixで遊ぶ 11 - ElixirでRedis -

今回は趣向を変えて、ElixirでRedisを操作してみたいと思います
ElixirのRedisを扱うライブラリとして今回はexredisを使用

Redisの設定
インストール方法は以前の記事を参照
今回は扱いやすいようにシンボリックリンクを張って.bash_profile
ちょこっと修正
  • シンボリックリンクの作成
$ ln -s インストールディレクトリ/redis-X.X.X /usr/bin/redis
  • .bash_profileに以下を追加
PATH=$PATH:/usr/bin/redis/src

export PATH

alias rediss='redis-server'
alias redisc='redis-cli'
redissでRedisサーバー起動, rediscでクライアント起動

プロジェクト作成 & exredisインストール
rediscliの名前でプロジェクト作成
$ mix new rediscli
* creating README.md
* creating .gitignore
* creating mix.exs
* creating config
* creating config/config.exs
* creating lib
* creating lib/rediscli.ex
* creating test
* creating test/test_helper.exs
* creating test/rediscli_test.exs

Your mix project was created successfully.
You can use mix to compile it, test it, and more:

    cd rediscli
    mix test

Run `mix help` for more commands.
mix.exsにexredisをプロジェクトに取り込むように編集
defmodule Rediscli.Mixfile do
  use Mix.Project
  〜 省略 〜
  defp deps do
    [{:exredis, ">= 0.2.1"}]
  end
end
プロジェクトに適用
$mix deps.get
iexで確認してみる
$ iex -S mix

iex(1)> client = Exredis.start
#PID<0.174.0>
iex(2)> {:ok, client} = Exredis.start_link —> パターンマッチング {:OKの場合しかclientにインスタンスが入らない
{:ok, #PID<0.178.0>}
iex(3)> client |> Exredis.query ["SET", "name", "slowhand"]
"OK"
iex(4)> client |> Exredis.query ["GET", "name"]
"slowhand"
iex(5)> client |> Exredis.stop
:ok
↑ではデフォルトの設定で起動(host:127.0.0.1, port:6379)
起動したのちpipe operator|>を使ってExredis.queryにclientを渡している
queryではredisのコマンドを実行している
現時点でkeynameslowhandが格納されている
今度は実際にredisのクライアントから確認
$ redisc
127.0.0.1:6379> get name
"slowhand"
ちゃんとslowhandが取れています 今度は逆に、redisのクライアントから設定した値をelixirから参照
$ redisc
127.0.0.1:6379> set name fuge
OK
127.0.0.1:6379> get name
"fuge"
127.0.0.1:6379> exit

$ iex -S mix
iex(1)> {:ok, client} = Exredis.start_link
{:ok, #PID<0.114.0>}
iex(2)> client |> Exredis.query ["GET", "name"]
"fuge"
iex(3)> client |> Exredis.stop
:ok
iex(4)>
ちゃんとredisのクライアントから設定した値をexredisでみれています
とりあえず今回はここまで

0 件のコメント:

コメントを投稿