Redis
 sql >> база данни >  >> NoSQL >> Redis

Как да получите всички ключове от Redis с помощта на шаблона Redis

Току-що консолидирах отговорите, видяхме тук.

Ето двата начина за получаване на ключове от Redis, когато използваме RedisTemplate.

1. Директно от RedisTemplate

Set<String> redisKeys = template.keys("samplekey*"));
// Store the keys in a List
List<String> keysList = new ArrayList<>();
Iterator<String> it = redisKeys.iterator();
while (it.hasNext()) {
       String data = it.next();
       keysList.add(data);
}

Забележка:Трябва да сте конфигурирали redisTemplate с StringRedisSerializer във вашия боб

Ако използвате java базирана конфигурация на bean

redisTemplate.setDefaultSerializer(new StringRedisSerializer());

Ако използвате конфигурация на bean, базирана на spring.xml

<bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"/>

<!-- redis template definition -->
<bean
    id="redisTemplate"
    class="org.springframework.data.redis.core.RedisTemplate"
    p:connection-factory-ref="jedisConnectionFactory"
    p:keySerializer-ref="stringRedisSerializer"
    />

2. От JedisConnectionFactory

RedisConnection redisConnection = template.getConnectionFactory().getConnection();
Set<byte[]> redisKeys = redisConnection.keys("samplekey*".getBytes());
List<String> keysList = new ArrayList<>();
Iterator<byte[]> it = redisKeys.iterator();
while (it.hasNext()) {
       byte[] data = (byte[]) it.next();
       keysList.add(new String(data, 0, data.length));
}
redisConnection.close();

Ако не затворите тази връзка изрично, ще се сблъскате с изчерпване на основния пул за връзки на jedis, както е посочено в https://stackoverflow.com/a/36641934/3884173.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да върна Redis primaryKey чрез изход на ARM шаблон?

  2. ServiceStack:Възстановяване на конвейера при ръчно извикване на услуга?

  3. Масово поглъщане в Redis

  4. Redis, слушане на pubsub събития и превръщането им в поток за по-надеждно потребление

  5. RuntimeWarning:Вие стартирате работника с привилегии на суперпотребител:това абсолютно не се препоръчва