Azure Redis Cache Premium (Preview)

Azure Redis CacheにPremium (Preview) が来ました。 -> 2015/11/12にGAしました

これまでのBasic/Standardとの大きな違いは以下のようなものになります。

  • キャッシュサイズとパフォーマンス
    • 最大クライアント接続数やキャッシュサイズ、ネットワークパフォーマンスなどが高い
    • キャッシュサイズ 6GB~53GB、最大でクライアント接続数4万
  • Redis Persistence
    • Redis Database(RDB)ファイルとしてAzure Storageに定期的にデータベースの内容をダンプできます
    • Append Only Fire(AOF)はComing Soon
  • Redis Cluster
    • クラスターが組めます。標準で最大10台。P4で組むと最大530GBのRedisクラスターになります。
    • 10台以上は要相談
  • Azure VNET接続
    • VNETに参加させることができます

他の機能はStandardを踏襲したものとなります。

価格はこんな感じ(現時点のPreview価格)
image

キャッシュサイズが同じStandardのプランとだいたい価格が同じですね。GA時にどうなるかはわかりませんが。またSLAは今の時点ではありません。

作成するには

PreviewポータルからRedisを選択しましょう。
image

価格レベルでPremiumを選択するとクラスターや永続性、VNETまわりの構成が可能になります。

Redis Cluster
image
有効にすると1~10までShard数を変えることができます。10以上は要連絡。
※現時点でRedis Clusterを有効にするとRedis Persistenceは使えません(Coming Soon)

Redis Persistence
image
有効にするとバックアップ間隔を60分/6時間/12時間/24時間から選択できます。
また保存先となるストレージアカウントはPremium Storageが推奨ですがStandardなのも選択できます。
AOFについてはComing Soonですね。

Virtual Network
image
Redisサーバーが所属する仮想ネットワーク(VNET)とサブネットを指定することができます。またそのサブネット上のIPアドレスも入力します。

あとは診断の有無やリソースグループなどを指定して作成することができます。
※現時点ではShared数や価格帯を作成後に変更できません。

今後のロードマップ

Comin Soonについては結構早くきそうなので要チェックですかね。

  • 他の機能(Redis Clusterなど)とRedis Persistenceの共存
  • PersistenceでRDBオプションの構成とAOFの有効化
  • Redis ClusterのShard数のスケーリング

ドキュメントなど

FAQみたいなの

※ドキュメントに記載あるやつ

  • Redis Persistenceについて
    • 既存のRedis Cacheを永続化できる? → Coming Soon(Preview中はダメかも)
    • キャッシュ作成後に頻度を変えられる?→ Coming Soon
    • 60分で設定してるのに次回バックアップが60分後じゃないんだけど → 例えばバックアップ完了後から60分です。
    • 古いバックアップはどうなりますか? → 最新を除いて古いのは全部削除されます(即時じゃないけど無期限に保存されるものではありません)
  • Redis Clusterについて
    • クラスタ構成したときにクライアントの変更が必要?
      • クラスタリングを有効にするとデータベース0のみが利用可能なのでそれ以外を使うようにしてる場合修正が必要です(以下みたいな例外はくらしい)
        Unhandled Exception: StackExchange.Redis.RedisConnectionException: ProtocolFailure on GET ---> StackExchange.Redis.RedisCommandException: Multiple databases are not supported on this server; cannot switch to database: 6
        
      • StackExchange.Redis使っている場合は1.0.481以降を使う必要があります
      • アプリがマルチキーを使ったバッチ操作を単一コマンドでする場合、すべてのキーが同じシャードに配置する必要があります
      • ASP.NET Session State Providerで使う場合は2.0.0以上を使いましょう
    • どのキーがクラスター内で分散していますか?
      • 各キーはハッシュ化されて16384のスロットのどこかに配置されます
      • ハッシュタグ付きキーを使ったりして同じShardに配置させることが可能です
      • Keys hash tagsなどドキュメントを参照
    • 最大キャッシュサイズは? → 現状P4で53GBx10で530GB
    • どうやってクラスターに接続する?
      • 通常どおりポート(エンドポイント)とアクセスキーを使ってアクセスするとクラスターに接続します
    • どうやってクラスター内のインスタンスに接続する?
      • クラスターのエンドポイント(ホスト名)のポート13000~に接続すればできます
      • 1台目はポート13000、2台目はポート13001、、です
      • SSLを使う場合は15000~です
    • ASP.NETのOutputCache Providerにつかえる?
      • 特に変更なしで使えます
  • VNET参加について
    • VNETに参加するとインターネット経由(VNET外)からは接続できません

 

Redis ClusterとVNET

VNETに所属してつないでみました。P1x2 Sharedです。

10.0.0.101:6379> info
# Server
redis_version:3.0.0
redis_mode:cluster
os:Windows
arch_bits:64
multiplexing_api:winsock_IOCP
run_id:979ceaa45463e4c5dfe09bd2ad3a6f9e6ca16665
hz:10

# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
client_total_writes_outstanding:0
client_total_sent_bytes_outstanding:0
blocked_clients:0

# Memory
used_memory:101929400
used_memory_human:97.21M
used_memory_rss:1335296
used_memory_rss_human:1.27M
used_memory_peak:102096056
used_memory_peak_human:97.37M
used_memory_lua:36864
maxmemory:6100000000
maxmemory_human:5.68G
maxmemory_policy:volatile-lru
mem_allocator:jemalloc-3.6.0

# Stats
total_connections_received:5305
total_commands_processed:9264
instantaneous_ops_per_sec:2
bytes_received_per_sec:239
bytes_sent_per_sec:2251
bytes_received_per_sec_human:239B
bytes_sent_per_sec_human:2.20K
rejected_connections:0
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
total_oom_messages:0

# Replication
role:master

# CPU
used_cpu_sys:0.86
used_cpu_user:0.75
used_cpu_avg_ms_per_sec:0
server_load:0.13
event_wait:7
event_no_wait:8

# Cluster
cluster_enabled:1
cluster_myself_name:7-------------------6

# Keyspace
10.0.0.101:6379>

Windows上で動作するRedis 3.0なのは前から同じですね。ちゃんとモードがclusterになっています。またVNETに参加するとVNET外(インターネット経由)からは接続することができません。(接続先がVNETなIPアドレスですね)
設定内容は現状、どこからか変更できない感じなのでPreviewポータル上のプロパティから見ることだけできます。
image

クラスターではなく1台目などに接続する場合はポートを13000~(SSLの場合は15000~)を指定して接続します。

redis-cli.exe -h 10.0.0.101 -p 13000

2台目に接続する場合は13001につなぎます。

永続性について

指定間隔でRDBファイルがバックアップされます。が、コンソール上でsaveなどしてもそんなコマンドないといわれるので、任意のタイミングでのバックアップはあきらめてAzure側で保存されるのを待つ必要があります。

指定したストレージに何やら謎な命名規則でRDB用のコンテナが作成され、そこにバックアップされます。

imageimage

使いどころは…まだいろいろ難しいところです。とりあえず保存されてるという感じです。

その他

Previewポータル上でRedisコンソールが使えるようになっています(Preview)
image

※ポータル機能からの接続になると思うので、VNETに接続したRedisには接続できません。

便利ですね。

まとめ

Coming Soon多いけどだいぶまともになった感

コメントを残す