복붙노트

[REDIS] HSET 경우 키의 존재

REDIS

HSET 경우 키의 존재

레디 스는 HSET을 경우에만 키 존재를 지원하지 않습니다. http://redis.io/commands#hash 클라이언트에서 해당 기능을 달성하기 위해 가장 좋은 방법은 무엇 일 것인가?

해결법

  1. ==============================

    1.이 트랜잭션을 사용하여 클라이언트 측에서이를 구현하기 쉽습니다.

    이 트랜잭션을 사용하여 클라이언트 측에서이를 구현하기 쉽습니다.

    WATCH hkey
    isKeyExists = EXISTS hkey
    if isKeyExists
      MULTI
      HSET hkey field value
      EXEC
    else
      UNWATCH
    

    HKEY이 WATCH 후 제거되면, 트랜잭션이 실패합니다.

    또한 레디 스 2.6에 도입 된 스크립트를 사용할 수 있습니다.

  2. from https://stackoverflow.com/questions/14009778/hset-if-key-exist by cc-by-sa and MIT license