본문 바로가기
Back-end

Redis 7.0.0 부터 CLI 내에서 명령어의 세부 설명을 확인할 수 있습니다

by 노아론 2022. 4. 28.

Redis 7.0.0이 한국 표준시로 2022년 4월 27일 오후 10시에 릴리즈 되었습니다.

새로운 키에 대한 키스페이스 이벤트가 추가되었고, Lua script 관련 보안 이슈, 성능 개선에 대한 작업이 이루어졌습니다.
그리고 명령어의 상세 설명을 확인할 수 있는 COMMAND DOCS가 추가되었습니다 

이번 글에선 COMMAND DOCS 명령어에 대해서 보려고 합니다.

이전 버전까지는 redis의 명령어에 대해 찾아보려면 https://redis.io/commands/ 에서 검색해야 하였습니다.

 

COMMAND 에 서브 명령어로서 DOCS가 추가되면서 이젠 웹 브라우저로의 전환 없이 CLI 상에서 전체 명령어의 설명 및 개별 명령어의 설명을 바로 확인할 수 있습니다.
https://github.com/redis/redis/pull/10544

 

COMMAND DOCS shows module name, where applicable by guybe7 · Pull Request #10544 · redis/redis

Add field to COMMAND DOCS response to denote the name of the module that added that command. COMMAND LIST can filter by module, but if you get the full commands list, you may still wanna know which...

github.com

 

 

릴리즈 단위로 보면 생략하여도 되는 내용이지만, 7.0.0 릴리즈가 되기 전의 과정에서 위의 PR 내용엔 DOCS 서브 명령어에서 명령어의 deprecated 여부만을 전달하였고 아래 PR를 통해 deprecated_since 필드를 함께 제공하도록 변경되었습니다.
https://github.com/redis/redis/pull/10545

 

Add the deprecated_since field in command args of COMMAND DOCS by guybe7 · Pull Request #10545 · redis/redis

Fix #10414 Apparently, some modules can afford deprecating command arguments (something that was never done in Redis, AFAIK), so in order to represent this piece of information, we added the deprec...

github.com

 

명령어 사용에 앞서서 입력과 시간 복잡도에 관한 몇 가지 사항을 살펴보겠습니다

COMMAND DOCS 명령어는 COMMAND DOCS [command-name [command-name ...]] 형태로 인자를 받고 있습니다.
따라서 인자를 주지 않거나, 하나의 인자만 주거나, 여러 인자를 주어서 사용할 수 있습니다.
이 내용은 따로 설명하지 않아도 될 것 같으므로 사용 예시에서 다시 보겠습니다.

시간 복잡도는 O(N) 으로 구성됩니다.
따라서 COMMAND DOCS 명령을 수행하는 경우엔 다소 무거운 동작을 하게 되니 개발 환경 외에서의 사용엔 주의가 필요해 보입니다.

COMMAND DOCS명령어를 입력하는 경우엔 모든 명령어에 대한 설명서가 제공됩니다.

 

다음은 COMMAND DOCS SADD를 통해서 SADD명령어에 대한 내용을 보는 경우입니다.

명령어 요약, 해당 명령어가 추가된 버전, 기능 그룹, 시간 복잡도, 문서 플래그(deprecated | syscmd), 명령어가 deprecated 된 버전, deprecated 인 경우 대체 가능한 명령어, 명령어에 대한 히스토리(설명 변경 내역), 명령어의 인자에 대해서 설명을 제공합니다.

 

이번엔 deprecated 된 명령어인 HMSET 을 보겠습니다.

HMSET은 2.0.0 버전에서 추가된 명령어로 4.0.0 버전에서 deprecated 되었습니다.
위 동작이 필요한 경우엔 HSET명령어로 대체할 수 있습니다.

COMMAND DOCS HMSET 명령을 통해서 CLI 내에서도 확인할 수 있습니다.

 

이번엔 여러 개의 명령어에 대한 설명을 보는 경우입니다.

COMMAND DOCS SADD DEL과 같이 확인하려는 명령어를 나열하면 됩니다.

 

 

위 글은 아래 내용을 참고하여 작성하였습니다

https://github.com/redis/redis/issues/10416

https://github.com/redis/redis/pull/10544

https://github.com/redis/redis/pull/10545

댓글