Quellcode durchsuchen

Merge branch 'feature_filter' of algorithm/recommend-server into master

dingyunpeng vor 1 Jahr
Ursprung
Commit
65606e8c51

+ 63 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/config/FilterRedisTemplateConfig.java

@@ -0,0 +1,63 @@
+package com.tzld.piaoquan.recommend.server.config;
+
+import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
+import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
+import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
+import org.springframework.data.redis.connection.lettuce.LettucePoolingClientConfiguration;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+@Configuration
+public class FilterRedisTemplateConfig {
+
+    @Bean("filterRedisPool")
+    @ConfigurationProperties(prefix = "spring.filter-redis.lettuce.pool")
+    public GenericObjectPoolConfig<LettucePoolingClientConfiguration> filterRedisPool() {
+        return new GenericObjectPoolConfig<>();
+    }
+
+    @Bean("filterRedisConfig")
+    @ConfigurationProperties(prefix = "spring.filter-redis")
+    public RedisStandaloneConfiguration filterRedisConfig() {
+        return new RedisStandaloneConfiguration();
+    }
+
+    @Bean("filterRedisFactory")
+    @Primary
+    public LettuceConnectionFactory factory(@Qualifier("filterRedisPool") GenericObjectPoolConfig<LettucePoolingClientConfiguration> filterRedisPool,
+                                            @Qualifier("filterRedisConfig") RedisStandaloneConfiguration filterRedisConfig) {
+        LettuceClientConfiguration lettuceClientConfiguration =
+                LettucePoolingClientConfiguration.builder().poolConfig(filterRedisPool).build();
+        return new LettuceConnectionFactory(filterRedisConfig, lettuceClientConfiguration);
+    }
+
+    @Bean(name = "filterRedisTemplate")
+    public RedisTemplate<String, String> getRedisTemplate(@Qualifier("filterRedisFactory") RedisConnectionFactory factory) {
+        return buildRedisTemplateByString(factory);
+    }
+
+    /**
+     * 构建redisTemplate 使用string序列化
+     *
+     * @param factory
+     * @return
+     */
+    private RedisTemplate<String, String> buildRedisTemplateByString(RedisConnectionFactory factory) {
+        RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
+        redisTemplate.setConnectionFactory(factory);
+        // key的序列化类型 保证可读性
+        redisTemplate.setKeySerializer(new StringRedisSerializer());
+        redisTemplate.setValueSerializer(new StringRedisSerializer());
+        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
+        redisTemplate.setHashValueSerializer(new StringRedisSerializer());
+        return redisTemplate;
+    }
+
+}

+ 1 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/strategy/ViewedStrategy.java

@@ -30,7 +30,7 @@ import java.util.stream.Collectors;
 @Slf4j
 public class ViewedStrategy implements FilterStrategy {
     @Autowired
-    @Qualifier("longVideoRedisTemplate")
+    @Qualifier("filterRedisTemplate")
     private RedisTemplate<String, String> redisTemplate;
 
     @Autowired

+ 11 - 0
recommend-server-service/src/main/resources/application-dev.yml

@@ -46,6 +46,17 @@ spring:
         max-wait: -1
         max-idle: 8
         min-idle: 0
+  filter-redis:
+    hostName: r-bp1ps6my7lzg8rdhwx682.redis.rds.aliyuncs.com
+    port: 6379
+    password: Wqsd@2019
+    timeout: 1000
+    lettuce:
+      pool:
+        max-active: 8
+        max-wait: -1
+        max-idle: 8
+        min-idle: 0
   data:
     mongodb:
       clusterHost: dds-bp1de4fc73029b241978.mongodb.rds.aliyuncs.com

+ 11 - 0
recommend-server-service/src/main/resources/application-pre.yml

@@ -36,6 +36,17 @@ spring:
         max-idle: 8
         min-idle: 0
   long-video-redis:
+    hostName: r-bp1oyhyx4mxgs6klyt561.redis.rds.aliyuncs.com
+    port: 6379
+    password: Wqsd@2019
+    timeout: 1000
+    lettuce:
+      pool:
+        max-active: 8
+        max-wait: -1
+        max-idle: 8
+        min-idle: 0
+  filter-redis:
     hostName: r-bp109v1gjl63qi00cb.redis.rds.aliyuncs.com
     port: 6379
     password: Wqsd@2019

+ 11 - 0
recommend-server-service/src/main/resources/application-prod.yml

@@ -36,6 +36,17 @@ spring:
         max-idle: 8
         min-idle: 0
   long-video-redis:
+    hostName: r-bp1oyhyx4mxgs6klyt561.redis.rds.aliyuncs.com
+    port: 6379
+    password: Wqsd@2019
+    timeout: 1000
+    lettuce:
+      pool:
+        max-active: 8
+        max-wait: -1
+        max-idle: 8
+        min-idle: 0
+  filter-redis:
     hostName: r-bp109v1gjl63qi00cb.redis.rds.aliyuncs.com
     port: 6379
     password: Wqsd@2019

+ 11 - 0
recommend-server-service/src/main/resources/application-test.yml

@@ -48,6 +48,17 @@ spring:
         max-wait: -1
         max-idle: 8
         min-idle: 0
+  filter-redis:
+    hostName: r-bp1ps6my7lzg8rdhwx682.redis.rds.aliyuncs.com
+    port: 6379
+    password: Wqsd@2019
+    timeout: 1000
+    lettuce:
+      pool:
+        max-active: 8
+        max-wait: -1
+        max-idle: 8
+        min-idle: 0
   data:
     mongodb:
       host: dds-bp1de4fc73029b241978.mongodb.rds.aliyuncs.com