redis - 无法使用 redis 模板进行扫描

标签 redis spring-data-redis

我正在尝试使用 SCAN http://redis.io/commands/scan遍历 redis 中存在的所有键。但是spring提供的Redis模板没有任何scan()方法。使用上面有什么技巧吗?

谢谢

最佳答案

您可以在 RedisOperations 上使用 RedisCallback 来执行此操作。

redisTemplate.execute(new RedisCallback<Iterable<byte[]>>() {

  @Override
  public Iterable<byte[]> doInRedis(RedisConnection connection) throws DataAccessException {

    List<byte[]> binaryKeys = new ArrayList<byte[]>();

    Cursor<byte[]> cursor = connection.scan(ScanOptions.NONE);
    while (cursor.hasNext()) {
      binaryKeys.add(cursor.next());
    }

    try {
      cursor.close();
    } catch (IOException e) {
      // do something meaningful
    }

    return binaryKeys;
  }
});

关于redis - 无法使用 redis 模板进行扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30254559/

相关文章:

redis - @EnableRedisRepositories - 在 Spring Data Redis 中有什么用?

redis - 带 Redis 的 Elasticache - 性能非常慢

transactions - 集群模式下spring data redis是否支持事务(multi,exec)?

redis - spring data redis - 监听过期事件

java - redis 集合成员更新的高效方式

go - 无法从同一区域的 Compute Engine 访问 GCP MemoryStore

python - 使用 celery 任务中的多处理池引发异常

redis - 访问共享 VPC 中的 memorystore

asp.net - Redis 中的 Azure 缓存/DataCache 样式区域

java - 使用分页从redis缓存中检索数据