今回は趣向を変えて、ElixirでRedisを操作してみたいと思います
ElixirのRedisを扱うライブラリとして今回はexredisを使用
ElixirのRedisを扱うライブラリとして今回はexredisを使用
Redisの設定
- シンボリックリンクの作成
$ 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
queryではredisのコマンドを実行している
起動したのちpipe operator
|>
を使ってExredis.queryにclientを渡しているqueryではredisのコマンドを実行している
現時点でkey
今度は実際にredisのクライアントから確認
name
にslowhand
が格納されている今度は実際に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 件のコメント:
コメントを投稿