Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

स्प्रिंग बूट ऐप रेडिस और स्प्रिंग बूट सेशन ग्लोबल रेडिस को कैसे अलग करें

दरअसल, डिफ़ॉल्ट रूप से, स्प्रिंग-सेशन और स्प्रिंग-कैश दोनों को वास्तव में स्प्रिंग-बूट द्वारा RedisConnectionFactory के साथ कॉन्फ़िगर किया गया है। बीन को connectionFactory नाम दिया गया है .ऐसा करने के दो तरीके।

  1. spring-session बनाएं एक अलग connectionFactory . का उपयोग करने के लिए बीन उदाहरण, और डिफ़ॉल्ट connectionFactory . का उपयोग करने के लिए स्प्रिंग-कैश छोड़ दें . और नीचे एक नमूना समाधान है:

    @Configuration
    public class RedisHttpSessionConfig {
    
        @Bean
        StringRedisSerializer stringRedisSerializer() {
            return new StringRedisSerializer();
        }
    
        @Bean
        RedisConnectionFactory redisHttpSessionConnectionFactory() {
            RedisConnectionFactory redisHttpSessionConnectionFactory = null;
            // ... add your codes here
            return redisHttpSessionConnectionFactory;
        }
    
        @Bean
        public RedisTemplate<Object, Object> sessionRedisTemplate(
                RedisConnectionFactory redisHttpSessionConnectionFactory) {
            RedisTemplate<Object, Object> template = new RedisTemplate<Object, Object>();
            template.setKeySerializer(new StringRedisSerializer());
            template.setHashKeySerializer(new StringRedisSerializer());
            template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
            template.setDefaultSerializer(GenericJackson2JsonRedisSerializer());
            template.setConnectionFactory(redisHttpSessionConnectionFactory);
            return template;
        }
    }
    
  2. spring-cache बनाएं एक अलग connectionFactory . का उपयोग करने के लिए बीन उदाहरण, और डिफ़ॉल्ट connectionFactory . का उपयोग करने के लिए वसंत-सत्र छोड़ दें . और नीचे एक नमूना समाधान है:

    @Configuration
    public class RedisCacheConfig {
    
        @Bean
        StringRedisSerializer stringRedisSerializer() {
            return new StringRedisSerializer();
        }
    
        @Bean
        RedisConnectionFactory redisCacheConnectionFactory() {
             RedisConnectionFactory redisCacheConnectionFactory = null;
             // ... add your codes here
             return redisCacheConnectionFactory;
        }
    
        @Bean
        RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisCacheConnectionFactory) {
            RedisTemplate<Object, Object> redisTemplate = new RedisTemplate();
            redisTemplate.setConnectionFactory(redisCacheConnectionFactory);
            redisTemplate.setKeySerializer(this.stringRedisSerializer());
            redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
            return redisTemplate;
        }
    
        @Bean(name = "stringRedisTemplate")
        public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisCacheConnectionFactory) throws UnknownHostException {
            StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
            stringRedisTemplate.setConnectionFactory(redisCacheConnectionFactory);
            stringRedisTemplate.setKeySerializer(this.stringRedisSerializer());
            stringRedisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
            return stringRedisTemplate;
        }
    
        @Bean
        CacheManager cacheManager(RedisTemplate redisTemplate) {
            RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);
            cacheManager.setDefaultExpiration(600l);
            cacheManager.setUsePrefix(true);
            return cacheManager;
        }
    }
    


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. चैनल परत या किसी अन्य मुफ्त होस्टिंग के बिना चैनल

  2. Redis™ के लिए स्केलग्रिड पूरी तरह से प्रबंधित होस्टिंग अब Azure पर उपलब्ध है

  3. इस साधारण बेंचमार्क में SQLite रेडिस से तेज क्यों है?

  4. रेल + डॉकर + साइडकीक + 127.0.0.1:6379 पर रेडिस से कनेक्ट करने में त्रुटि (Errno::ECONNREFUSED)

  5. रेडिस सिंगल-थ्रेडेड है, तो यह समवर्ती I/O कैसे करता है?