Tôi vừa tổng hợp các câu trả lời, chúng tôi đã thấy ở đây.
Dưới đâ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 đã cấu hình redisTemplate với StringRedisSerializer trong đậu
của bạn Nếu bạn sử dụng java dựa cấu hình đậu
redisTemplate.setDefaultSerializer(new StringRedisSerializer());
Nếu bạn sử dụng spring.xml dựa cấu hình đậu
<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ẽ chạy vào một kiệt sức của hồ bơi kết nối jedis cơ bản như đã nói trong https://stackoverflow.com/a/36641934/3884173.
Nguồn
2016-08-19 06:17:13
Điều này đã giúp tôi rất nhiều, xứng đáng nhận được nhiều ưu điểm hơn !! – varunkr
Đây phải là câu trả lời được chấp nhận. –