RespClient
Minimal Redis Client for PowerShell
2014/07/12
Yoshifumi Kawai - @neuecc
Self Introduction
@仕事
株式会社グラニ 取締役CTO
C# 5.0 + .NET Framework 4.5 + ASP.NET MVC 5
最先端C#によるハイパフォーマンスWebアプリケーション
@個人活動
Microsoft MVP for Visual C#
Web http://neue.cc/
Twitter @neuecc
linq.js - http://linqjs.codeplex.com/ とか作ってます
Redis/RESP
REmote DIctionary Server/REdis Serialization Protocol
About Redis
インメモリKey-Valueストア
KVS系では現在、最も人気が高い
単純なKey-Valueの他にListやSetなど多様なデータ型が使える
リモート上のデータ構造という、いい具合のサイズ感が魅力
Windowsでも動く
MicrosoftがforkしたWindowsバイナリあり
AWSやAzureがManagedなCacheServerとして正式提供
それを受けてMicrosoftがASP.NET用のSessionProviderを公開したり
Windowsでも、間違いなく標準的
なKVSとなっていくだろう
About RESP
Redis SErialization Protocol
http://redis.io/topics/protocol
Redisのプロトコル、どういうバイナリ送れば実行されるか
Simple to implement.
Fast to parse.
Human readable.
かなりシンプル
public enum RespType : byte
{
SimpleStrings = (byte)'+',
Erorrs = (byte)'-',
Integers = (byte)':',
BulkStrings = (byte)'$',
Arrays = (byte)'*'
}
C#で先頭識別子の定義すると
こんな感じになる、簡単そう?
RespClient
minimal RESP(REdis Serialization Protocol) client for PowerShell
RespClient
シンプルなPowerShell用Redisライブラリ
https://github.com/neuecc/RespClient
現在はNuGetで配ってます。が、PowerShellGet?よくわからな
いけれどぎたぱそ先生がなんかいい具合に配ってくれるでしょ
ういつかきっとおそらく
非依存・コマンドレット提供
自前でプロトコル解釈してるので外部ライブラリ不要
コマンドレットを完備してる唯一の.NET用Redisライブラリ
Why RespClient?
.NET用Redisクライアントは幾つかある
特にRedis/C#についてはBuildInsiderに書いたので読んでね
http://www.buildinsider.net/small/rediscshap/01
が、.NET用は基本C#用でPowerShell用ではない
使い心地がヘヴィで、PowerShellで使いやすくない
redis-cli的な、PowerShellネイティブなクライアントが欲しい
というわけで、自分で作った(但し実装は(当然)C#)
PowerShellからWindowsのRedisもLinuxのRedisも管理できる
Demo...
Connect/Send-Command with RespClient
How to use : Commandlet
# モジュールはdllで提供されているので読み込む
Import-Module RespClient.dll
# RedisServerへの接続。
# ConnectionはPowerShellのセッションが有効な間繋がりっぱなしになる。
# 他にオプションとして-Host, -Port, -Timeout
Connect-RedisServer 127.0.0.1
# 繋がったコネクションでコマンドを送る
Send-RedisCommand "set test 100"
Send-RedisCommand "get test"
Send-RedisCommand "incr test"
# PowerShellなのでパイプラインで送れるのが強み!
@(1,2,3) | % { Send-RedisCommand "incrby test $_" }
# 明示的に切る場合はDisconnectコマンドを
Disconnect-RedisServer
Conclusion
まとめ
Redis is very very important!
これからのWeb開発でRedis知らないのはありえない
Windowsにおいてもそれは変わらない
管理するならば?
やはりPowerShellで行いたい!RespClient!
http://neue.cc/2014/03/11_447.html ←紹介記事
もちろんWindowsで動くRedisだけじゃなく、Linuxで動くRedis
にも繋がってPowerShellで自由に操作可能です

RespClient - Minimal Redis Client for PowerShell