tencent cloud

Tencent Cloud Distributed Cache (Redis OSS-Compatible)

scripting and functions 族

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-20 18:29:13
AI翻訳

コマンドの紹介

Scripting and Functionsファミリーコマンドは、サーバー側でLuaスクリプトを実行し、再利用可能な関数ライブラリを管理するために使用され、複数ステップのアトミック操作が必要な場合、ネットワークラウンドトリップの削減、または複雑なビジネスロジックをデータ層に移行するシナリオに適しています。その主要コマンドは機能別に以下の3種類に分類できます:
Luaスクリプト実行
EVAL / EVALSHA:サーバー側でLuaスクリプトをアトミックに実行します(すべての操作は同一イベントループ内で完了し、他のコマンドによって中断されません)。EVALはスクリプトソースコードを直接渡し、EVALSHAはSHA1ハッシュを使用してキャッシュ済みスクリプトを呼び出します。
EVAL_RO / EVALSHA_RO(Redis 7.0+):読み取り専用レプリカで実行可能なバージョンであり、従ノード上での読み取り専用スクリプト操作に使用されます。
スクリプトキャッシュ管理
SCRIPT LOAD:スクリプトをサーバー側キャッシュにロードし、SHA1ハッシュを返します。
SCRIPT EXISTS:スクリプトがキャッシュに存在するかどうかを確認します。
SCRIPT FLUSH:すべてのスクリプトキャッシュを消去します。
SCRIPT KILL:実行中の長時間実行スクリプトを終了します。
Functions関数ライブラリ(Redis 7.0+ / Valkey 8.0+)
Functionsメカニズムはスクリプトを名前付き関数ライブラリにアップグレードし、永続化ストレージとマスタースレーブレプリケーションをサポートし、より優れた保守性とバージョン管理能力を提供します。
FUNCTION LOAD / FUNCTION DELETE / FUNCTION FLUSH:関数ライブラリをロード、削除、または消去します。
FUNCTION LIST / FUNCTION DUMP / FUNCTION RESTORE:関数ライブラリを一覧表示、エクスポート、またはインポートします。
FUNCTION STATS:関数の実行統計を確認します。
FCALL / FCALL_RO:登録済みの名前付き関数を呼び出します(ROバージョンは読み取り専用レプリカで実行できます)。
詳細については、Valkey公式ドキュメントのScriptingコマンドグループを参照してください。

コマンドサポート概要

基本コマンド:eval、evalsha、script exists、script flush、script load、script killは、Redis 2.8標準アーキテクチャおよび4.0、5.0、6.2、7.0バージョン、Valkey 8.0、9.0の標準アーキテクチャとクラスタアーキテクチャでサポートされています。
7.0+ 新增コマンド:eval_ro、evalsha_ro、function delete、function dump、function flush、function kill、function list、function load、function restore、function stats、fcall、fcall_roは、Redis 7.0バージョンおよびValkey 8.0、9.0バージョンのみでサポートされています。このうちeval_ro、evalsha_roは読み取り専用レプリカ実行バージョンであり、fcall、fcall_roはカスタム関数の呼び出しに使用されます。
グローバルでサポートされていません:script debugはすべてのバージョンとアーキテクチャでサポートされていません。
クロスSlot制限:クラスタアーキテクチャでは、eval、evalsha、script existsはクロスSlot操作をサポートしていません。操作のKeyは同じSlot上に存在する必要があります。

コマンド互換性マトリクス

Scripting and Functions系コマンドの各バージョンおよびアーキテクチャにおけるサポート状況は以下の表の通りです(✓はサポート、✗は非サポート、—は該当コマンドにクロスSlotアクセスシーンが存在しないことを示します)。
説明:
eval_roとevalsha_roは読み取り専用コマンドであり、読み取り専用レプリカでLuaスクリプトを実行できます。functionシリーズコマンドはRedisカスタム関数ライブラリの管理に使用されます。上記のコマンドはRedis 7.0およびValkey 8.0、9.0のみでサポートされています。
コマンド
Valkey 9.0スタンダードアーキテクチャ
Valkey 9.0クラスタアーキテクチャ
Redis 7.0/Valkey 8.0スタンダードアーキテクチャ
Redis 7.0/Valkey 8.0クラスタアーキテクチャ
Redis 6.2スタンダードアーキテクチャ
Redis 6.2クラスタアーキテクチャ
Redis 5.0スタンダードアーキテクチャ
Redis 5.0クラスタアーキテクチャ
Redis 4.0スタンダードアーキテクチャ
Redis 4.0クラスタアーキテクチャ
Redis 2.8スタンダードアーキテクチャ
クラスタアーキテクチャのクロススロット対応
eval
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✗
eval_ro
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—
evalsha
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✗
evalsha_ro
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—
script debug
✗
✗
✗
✗
✗
✗
✗
✗
✗
✗
✗
—
script exists
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✗
script flush
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
script load
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
script kill
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
✓
—
function delete
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—
function kill
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—
function dump
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—
function flush
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—
function list
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—
function load
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—
function restore
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—
function status
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—
fcall
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—
fcall_ro
✓
✓
✓
✓
✗
✗
✗
✗
✗
✗
✗
—

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック