Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Como implementar o Redis Multi-Exec usando Spring-data-Redis


A razão para a exceção é provavelmente que a implementação do template Spring não reutiliza a mesma conexão para .multi() e .exec() . Você pode tentar usar execute() através de um retorno de chamada:
private RedisTemplate template = ...;

template.execute(

  new RedisCallback() {

    @Override
    public Object doInRedis(RedisConnection connection)
      throws DataAccessException {

      connection.multi();

      //do whatever you need, like deleting and repopulating some keys

      connection.expire(CHANNEL_KEY.getBytes(), EXPIRE_SECS);
      connection.exec();
      return null;
    }

  }

);