Cmdlets for Redis

Build 24.0.8963

接続の確立

CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でRedis Cmdlets を使用する例を示します。

インストールおよび接続

PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。

Install-Module RedisCmdlets

プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。

Import-Module RedisCmdlets;

Connect-Redis cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。

$conn = Connect-Redis -Server '127.0.0.1' -Password 'test'

Redis への接続

Server 接続プロパティをRedis インスタンスが実行されているサーバーの名前またはアドレスに設定します。

Redis サーバーがデフォルト(6379)以外のポートで起動している場合、Port プロパティでポートを指定できます。

Redis への認証

本製品 はパスワードおよびACL 認証をサポートします。また、パスワード保護されていないRedis インスタンスへの接続もサポートされています。

認証なし

AuthScheme プロパティをNone に設定します。この場合Redis インスタンスはパスワード保護を受けません (設定ファイルでrequirepass ディレクティブを使用している場合)。

パスワード

AuthScheme プロパティをPassword に設定し、Password プロパティを、パスワード保護されたRedis インスタンスへの、Redis AUTH コマンドを使用した認証に使用されるパスワードに設定します。

ACL(アクセスコントロールリスト)

接続するには以下を設定します。

  • AuthSchemeACL に設定。
  • User:Redis ACL へ認証するために使用するユーザー名に設定。
  • Password:Redis ACL へ認証するために使用するパスワードに設定。

セキュアなRedis への接続

UseSSL を設定すると、接続時にSSL/TLS 暗号化をネゴシエートできます。

データの取得

Select-Redis cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。

$results = Select-Redis -Connection $conn -Table "Customers" -Columns @("City, CompanyName") -Where "Country='US'"
Invoke-Redis cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。

cmdlet 出力のパイプ処理

cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。

Select-Redis -Connection $conn -Table Customers -Where "Country = 'US'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myCustomersData.csv -NoTypeInformation

Select-Redis からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。

ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。

 
PS C:\> $conn  = Connect-Redis -Server '127.0.0.1' -Password 'test'
PS C:\> $row = Select-Redis -Connection $conn -Table "Customers" -Columns (City, CompanyName) -Where "Country = 'US'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
  "Connection":  {

  },
  "Table":  "Customers",
  "Columns":  [

  ],
  "City":  "MyCity",
  "CompanyName":  "MyCompanyName"
} 

データの削除

以下は、抽出条件に合うあらゆるレコードを削除します。

Select-Redis -Connection $conn -Table Customers -Where "Country = 'US'" | Remove-Redis

データの変更

cmdlet はデータクレンジング同様、データの変換を容易にします。次の例は、レコードがすでに存在するかどうか、挿入する前に更新が必要かどうかをチェックしてから、CSV ファイルのデータをRedis にロードします。

Import-Csv -Path C:\MyCustomersUpdates.csv | %{
  $record = Select-Redis -Connection $conn -Table Customers -Where ("_id = `'"+$_._id+"`'")
  if($record){
    Update-Redis -Connection $conn -Table Customers -Columns @("City","CompanyName") -Values @($_.City, $_.CompanyName) -Where "_id  = `'$_._id`'"
  }else{
    Add-Redis -Connection $conn -Table Customers -Columns @("City","CompanyName") -Values @($_.City, $_.CompanyName)
  }
}

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.8963