Redis
 sql >> Database >  >> NoSQL >> Redis

Come implementare Redis Multi-Exec utilizzando Spring-data-Redis

Il motivo dell'eccezione è probabilmente che l'implementazione del modello Spring non riutilizza la stessa connessione per .multi() e .exec() . Puoi provare a usare execute() tramite una richiamata:

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;
    }

  }

);