MeWrite Docs

ERR unknown command

Redisで不正なコマンドを実行した場合に発生するエラー

概要

ERR unknown command は、Redisで存在しないコマンドや、Redisのバージョンでサポートされていないコマンドを実行しようとした場合に発生するエラーです。

エラーメッセージ

(error) ERR unknown command 'HGETALL', with args beginning with: 'mykey'
(error) ERR unknown command 'JSON.GET'
(error) ERR wrong number of arguments for 'get' command

原因

1. コマンド名のタイプミス

1
2
3
4
5
# NG
HMEGT mykey field1

# OK
HMGET mykey field1

2. 古いRedisバージョン

1
2
3
4
5
# Redis 6.2+のみ
COPY source destination

# Redis 7.0+のみ
CLIENT NO-EVICT ON

3. モジュールコマンド(未インストール)

1
2
3
4
5
# RedisJSONモジュールが必要
JSON.GET mykey

# RediSearchモジュールが必要
FT.SEARCH myindex "hello"

4. 引数の数が間違い

1
2
3
4
5
# NG: 引数が足りない
SET mykey

# OK
SET mykey myvalue

解決策

1. バージョン確認

1
2
redis-cli INFO server | grep redis_version
# redis_version:7.0.0

2. コマンドの確認

1
2
3
4
5
6
7
8
# 利用可能なコマンド一覧
COMMAND

# 特定コマンドの詳細
COMMAND INFO GET

# コマンドのドキュメント確認
COMMAND DOCS GET

3. モジュールの確認

1
2
3
4
5
# インストール済みモジュール一覧
MODULE LIST

# モジュールのロード
MODULE LOAD /path/to/module.so

4. 正しいコマンド構文

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# String型
SET key value
GET key

# Hash型
HSET key field value
HGET key field
HGETALL key

# List型
LPUSH key value1 value2
LRANGE key 0 -1

# Set型
SADD key member1 member2
SMEMBERS key

# Sorted Set型
ZADD key score1 member1
ZRANGE key 0 -1

5. 代替コマンドを使用

1
2
3
4
5
6
7
# Redis 6.2未満でCOPYがない場合
# DUMPとRESTOREを組み合わせる
DUMP source
RESTORE destination 0 "..."

# ACL未対応の古いRedis
# CONFIG GET requirepass

データ型別コマンド一覧

主要コマンド
StringGET, SET, INCR, DECR
HashHGET, HSET, HGETALL, HDEL
ListLPUSH, RPUSH, LPOP, LRANGE
SetSADD, SREM, SMEMBERS, SINTER
Sorted SetZADD, ZREM, ZRANGE, ZSCORE
StreamXADD, XREAD, XRANGE

関連エラー

関連エラー

Redis の他のエラー

最終更新: 2025-12-17