Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Cách nhận tất cả các Chìa khóa từ Redis bằng cách sử dụng mẫu redis

Tôi chỉ tổng hợp các câu trả lời, chúng ta đã thấy ở đây.

Đây là hai cách để nhận khóa từ Redis, khi chúng tôi sử dụng RedisTemplate.

1. Trực tiếp từ 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);
}

Lưu ý:Bạn nên định cấu hình redisTemplate bằng StringRedisSerializer trong hạt đậu của bạn

Nếu bạn sử dụng cấu hình bean dựa trên java

redisTemplate.setDefaultSerializer(new StringRedisSerializer());

Nếu bạn sử dụng cấu hình bean dựa trên 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. Từ 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();

Nếu bạn không đóng kết nối này một cách rõ ràng, bạn sẽ cạn kiệt nhóm kết nối jedis cơ bản như đã nói trong https://stackoverflow.com/a/36641934/3884173.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Django Celery không thể truy vấn postgres db bên trong tác vụ

  2. Phiên thay đổi nhanh mọi yêu cầu

  3. Khóa ioredis với Mẫu phù hợp

  4. Redis Sentinels với TLS

  5. Quét Laravel và redis