如何获取spring-boot-starter-data-redis中的Jedis实例?

How to get a Jedis instance in spring-boot-starter-data-redis?

这个例子正确吗?

连接池是否自动关闭? 需要获取jedis实例才能操作GEO

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.stereotype.Service;
import redis.clients.jedis.Jedis;

@Service
public class RedisGeo {

@Autowired
private RedisConnectionFactory redisConnectionFactory;

private void test() {
    RedisConnection redisConnection = redisConnectionFactory.getConnection();
    Jedis jedis = (Jedis) redisConnection.getNativeConnection();

    System.out.println(jedis);
    jedis.geoadd("demo",
            91.118970,
            29.654210,
            "dc");
   }
}

地理操作不需要原生 Jedis 实例。 RedisTemplate 有一个 opsForGeo() 方法,returns GeoOperations 接口。

所以你可以做到

redistTemplate.opsForGeo().add("demo", new Point(91.118970,29.654210), "dc");