org.springframework.data.redis.connection.RedisConnection.openPipeline()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(9.7k)|赞(0)|评价(0)|浏览(392)

本文整理了Java中org.springframework.data.redis.connection.RedisConnection.openPipeline方法的一些代码示例,展示了RedisConnection.openPipeline的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RedisConnection.openPipeline方法的具体详情如下:
包路径:org.springframework.data.redis.connection.RedisConnection
类名称:RedisConnection
方法名:openPipeline

RedisConnection.openPipeline介绍

[英]Activates the pipeline mode for this connection. When pipelined, all commands return null (the reply is read at the end through #closePipeline(). Calling this method when the connection is already pipelined has no effect. Pipelining is used for issuing commands without requesting the response right away but rather at the end of the batch. While somewhat similar to MULTI, pipelining does not guarantee atomicity - it only tries to improve performance when issuing a lot of commands (such as in batching scenarios).

Note:

Consider doing some performance testing before using this feature since in many cases the performance benefits are minimal yet the impact on usage are not.
[中]激活此连接的管道模式。管道化时,所有命令都返回null(应答在末尾通过#closePipeline()读取)。当连接已经管道化时调用此方法没有效果。流水线用于在不立即请求响应的情况下发出命令,而是在批处理结束时发出。虽然有点类似于MULTI,但流水线并不能保证原子性——它只会在发出大量命令时(例如在批处理场景中)尝试提高性能。
注:
在使用这个特性之前,考虑做一些性能测试,因为在很多情况下,性能效益是最小的,但对使用的影响不是。

代码示例

代码示例来源:origin: spring-projects/spring-data-redis

@Override
public void openPipeline() {
  delegate.openPipeline();
}

代码示例来源:origin: spring-projects/spring-security-oauth

RedisConnection conn = getConnection();
try {
  conn.openPipeline();
  if (springDataRedis_2_0) {
    try {

代码示例来源:origin: spring-projects/spring-data-redis

@Override
public List<Object> executePipelined(RedisCallback<?> action, @Nullable RedisSerializer<?> resultSerializer) {
  return execute((RedisCallback<List<Object>>) connection -> {
    connection.openPipeline();
    boolean pipelinedClosed = false;
    try {
      Object result = action.doInRedis(connection);
      if (result != null) {
        throw new InvalidDataAccessApiUsageException(
            "Callback cannot return a non-null value as it gets overwritten by the pipeline");
      }
      List<Object> closePipeline = connection.closePipeline();
      pipelinedClosed = true;
      return deserializeMixedResults(closePipeline, resultSerializer, hashKeySerializer, hashValueSerializer);
    } finally {
      if (!pipelinedClosed) {
        connection.closePipeline();
      }
    }
  });
}

代码示例来源:origin: spring-projects/spring-security-oauth

private void removeAccessTokenUsingRefreshToken(String refreshToken) {
  byte[] key = serializeKey(REFRESH_TO_ACCESS + refreshToken);
  List<Object> results = null;
  RedisConnection conn = getConnection();
  try {
    conn.openPipeline();
    conn.get(key);
    conn.del(key);
    results = conn.closePipeline();
  } finally {
    conn.close();
  }
  if (results == null) {
    return;
  }
  byte[] bytes = (byte[]) results.get(0);
  String accessToken = deserializeString(bytes);
  if (accessToken != null) {
    removeAccessToken(accessToken);
  }
}

代码示例来源:origin: spring-projects/spring-data-redis

@Override
public List<Object> executePipelined(SessionCallback<?> session, @Nullable RedisSerializer<?> resultSerializer) {
  Assert.isTrue(initialized, "template not initialized; call afterPropertiesSet() before using it");
  Assert.notNull(session, "Callback object must not be null");
  RedisConnectionFactory factory = getRequiredConnectionFactory();
  // bind connection
  RedisConnectionUtils.bindConnection(factory, enableTransactionSupport);
  try {
    return execute((RedisCallback<List<Object>>) connection -> {
      connection.openPipeline();
      boolean pipelinedClosed = false;
      try {
        Object result = executeSession(session);
        if (result != null) {
          throw new InvalidDataAccessApiUsageException(
              "Callback cannot return a non-null value as it gets overwritten by the pipeline");
        }
        List<Object> closePipeline = connection.closePipeline();
        pipelinedClosed = true;
        return deserializeMixedResults(closePipeline, resultSerializer, hashKeySerializer, hashValueSerializer);
      } finally {
        if (!pipelinedClosed) {
          connection.closePipeline();
        }
      }
    });
  } finally {
    RedisConnectionUtils.unbindConnection(factory);
  }
}

代码示例来源:origin: spring-projects/spring-data-redis

connToUse.openPipeline();

代码示例来源:origin: spring-projects/spring-security-oauth

public void removeRefreshToken(String tokenValue) {
  byte[] refreshKey = serializeKey(REFRESH + tokenValue);
  byte[] refreshAuthKey = serializeKey(REFRESH_AUTH + tokenValue);
  byte[] refresh2AccessKey = serializeKey(REFRESH_TO_ACCESS + tokenValue);
  byte[] access2RefreshKey = serializeKey(ACCESS_TO_REFRESH + tokenValue);
  RedisConnection conn = getConnection();
  try {
    conn.openPipeline();
    conn.del(refreshKey);
    conn.del(refreshAuthKey);
    conn.del(refresh2AccessKey);
    conn.del(access2RefreshKey);
    conn.closePipeline();
  } finally {
    conn.close();
  }
}

代码示例来源:origin: spring-projects/spring-security-oauth

RedisConnection conn = getConnection();
try {
  conn.openPipeline();
  conn.get(accessKey);
  conn.get(authKey);
    byte[] unameKey = serializeKey(UNAME_TO_ACCESS + getApprovalKey(authentication));
    byte[] clientId = serializeKey(CLIENT_ID_TO_ACCESS + authentication.getOAuth2Request().getClientId());
    conn.openPipeline();
    conn.del(authToAccessKey);
    conn.sRem(unameKey, access);

代码示例来源:origin: spring-projects/spring-security-oauth

conn.openPipeline();
if (springDataRedis_2_0) {
  try {

代码示例来源:origin: spring-projects/spring-integration

private void processInPipeline(PipelineCallback callback) {
  RedisConnectionFactory connectionFactoryForPipeline = this.redisTemplate.getConnectionFactory();
  Assert.state(connectionFactoryForPipeline != null, "RedisTemplate returned no connection factory");
  RedisConnection connection =
      RedisConnectionUtils.bindConnection(connectionFactoryForPipeline);
  try {
    connection.openPipeline();
    callback.process();
  }
  finally {
    connection.closePipeline();
    RedisConnectionUtils.unbindConnection(connectionFactoryForPipeline);
  }
}

代码示例来源:origin: 1991wangliang/tx-lcn

@Override
public void openPipeline() {
  redisConnection.openPipeline();
}

代码示例来源:origin: apache/servicemix-bundles

@Override
public void openPipeline() {
  delegate.openPipeline();
}

代码示例来源:origin: org.springframework.data/spring-data-redis

@Override
public void openPipeline() {
  delegate.openPipeline();
}

代码示例来源:origin: org.springframework.integration/spring-integration-redis

private void processInPipeline(PipelineCallback callback) {
  RedisConnectionFactory connectionFactoryForPipeline = this.redisTemplate.getConnectionFactory();
  Assert.state(connectionFactoryForPipeline != null, "RedisTemplate returned no connection factory");
  RedisConnection connection =
      RedisConnectionUtils.bindConnection(connectionFactoryForPipeline);
  try {
    connection.openPipeline();
    callback.process();
  }
  finally {
    connection.closePipeline();
    RedisConnectionUtils.unbindConnection(connectionFactoryForPipeline);
  }
}

代码示例来源:origin: org.springframework.data/spring-data-redis

@Override
public List<Object> executePipelined(RedisCallback<?> action, @Nullable RedisSerializer<?> resultSerializer) {
  return execute((RedisCallback<List<Object>>) connection -> {
    connection.openPipeline();
    boolean pipelinedClosed = false;
    try {
      Object result = action.doInRedis(connection);
      if (result != null) {
        throw new InvalidDataAccessApiUsageException(
            "Callback cannot return a non-null value as it gets overwritten by the pipeline");
      }
      List<Object> closePipeline = connection.closePipeline();
      pipelinedClosed = true;
      return deserializeMixedResults(closePipeline, resultSerializer, hashKeySerializer, hashValueSerializer);
    } finally {
      if (!pipelinedClosed) {
        connection.closePipeline();
      }
    }
  });
}

代码示例来源:origin: org.springframework.security.oauth/spring-security-oauth2

private void removeAccessTokenUsingRefreshToken(String refreshToken) {
  byte[] key = serializeKey(REFRESH_TO_ACCESS + refreshToken);
  List<Object> results = null;
  RedisConnection conn = getConnection();
  try {
    conn.openPipeline();
    conn.get(key);
    conn.del(key);
    results = conn.closePipeline();
  } finally {
    conn.close();
  }
  if (results == null) {
    return;
  }
  byte[] bytes = (byte[]) results.get(0);
  String accessToken = deserializeString(bytes);
  if (accessToken != null) {
    removeAccessToken(accessToken);
  }
}

代码示例来源:origin: keets2012/Auth-service

private void removeAccessTokenUsingRefreshToken(String refreshToken) {
  byte[] key = serializeKey(REFRESH_TO_ACCESS + refreshToken);
  List<Object> results = null;
  RedisConnection conn = getConnection();
  try {
    conn.openPipeline();
    conn.get(key);
    conn.del(key);
    results = conn.closePipeline();
  } finally {
    conn.close();
  }
  if (results == null) {
    return;
  }
  byte[] bytes = (byte[]) results.get(0);
  String accessToken = deserializeString(bytes);
  if (accessToken != null) {
    removeAccessToken(accessToken);
  }
}

代码示例来源:origin: keets2012/Auth-service

public void removeRefreshToken(String tokenValue) {
  byte[] refreshKey = serializeKey(REFRESH + tokenValue);
  byte[] refreshAuthKey = serializeKey(REFRESH_AUTH + tokenValue);
  byte[] refresh2AccessKey = serializeKey(REFRESH_TO_ACCESS + tokenValue);
  byte[] access2RefreshKey = serializeKey(ACCESS_TO_REFRESH + tokenValue);
  RedisConnection conn = getConnection();
  try {
    conn.openPipeline();
    conn.del(refreshKey);
    conn.del(refreshAuthKey);
    conn.del(refresh2AccessKey);
    conn.del(access2RefreshKey);
    conn.closePipeline();
  } finally {
    conn.close();
  }
}

代码示例来源:origin: fangchunzao/SpringSecurityOauth2

public void removeRefreshToken(String tokenValue) {
  byte[] refreshKey = serializeKey(REFRESH + tokenValue);
  byte[] refreshAuthKey = serializeKey(REFRESH_AUTH + tokenValue);
  byte[] refresh2AccessKey = serializeKey(REFRESH_TO_ACCESS + tokenValue);
  byte[] access2RefreshKey = serializeKey(ACCESS_TO_REFRESH + tokenValue);
  RedisConnection conn = getConnection();
  try {
    conn.openPipeline();
    conn.del(refreshKey);
    conn.del(refreshAuthKey);
    conn.del(refresh2AccessKey);
    conn.del(access2RefreshKey);
    conn.closePipeline();
  } finally {
    conn.close();
  }
}

代码示例来源:origin: org.springframework.security.oauth/spring-security-oauth2

public void removeRefreshToken(String tokenValue) {
  byte[] refreshKey = serializeKey(REFRESH + tokenValue);
  byte[] refreshAuthKey = serializeKey(REFRESH_AUTH + tokenValue);
  byte[] refresh2AccessKey = serializeKey(REFRESH_TO_ACCESS + tokenValue);
  byte[] access2RefreshKey = serializeKey(ACCESS_TO_REFRESH + tokenValue);
  RedisConnection conn = getConnection();
  try {
    conn.openPipeline();
    conn.del(refreshKey);
    conn.del(refreshAuthKey);
    conn.del(refresh2AccessKey);
    conn.del(access2RefreshKey);
    conn.closePipeline();
  } finally {
    conn.close();
  }
}

相关文章

微信公众号

最新文章

更多

RedisConnection类方法