0

Spring Data Redis には、次の 2 つの Bean 定義があります。Web アプリのこれらの Bean のスコープ (シングルトン、リクエスト、またはセッション) を決定するための関連ドキュメントが見つからないようです。

@Bean
public StringRedisTemplate redisTemplate() throws Exception {
    StringRedisTemplate redisTemplate = new StringRedisTemplate();
    redisTemplate.setConnectionFactory(jedisConnectionFactory());
    return redisTemplate;
}

@Bean
public StringRedisConnection stringRedisConnection() throws Exception {
    return new DefaultStringRedisConnection(redisTemplate().getConnectionFactory().getConnection());
}
4

1 に答える 1

0

@Christoph Strobl の推奨事項のおかげで、Iam が現在使用している実装がここにあります

  public  List<String> testAutoComplete(String key,String query, int limitCount){
        StringRedisSerializer serializer = new StringRedisSerializer();
        RedisZSetCommands.Range range = Range.range();
        range.gt(query);
        RedisZSetCommands.Limit limit = new RedisZSetCommands.Limit();
        limit.count(limitCount);
       return template.execute(new RedisCallback< List<String>>() {
            public  List<String> doInRedis(RedisConnection connection) {
                Set<byte[]> results = connection.zRangeByLex(serializer.serialize(key), range,limit);
                List<String> resultAsString = new ArrayList<String>();
                for(byte[] result : results){
                    resultAsString.add(serializer.deserialize(result));
                }
                return resultAsString;
            }
        },false); 
    }
于 2015-06-24T03:07:25.557 に答える