<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 22, comments - 32, trackbacks - 0, articles - 73
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    spring boot redis 配置

    Posted on 2017-08-07 17:38 為自己代言 閱讀(599) 評論(0)  編輯  收藏 所屬分類: spring cloud 微服務
    1:pom.xml 找自己spring boot 對應的版本
      <!-- redis 配置-->
     <dependency>
     <groupId>redis.clients</groupId>
     <artifactId>jedis</artifactId>
     <version>2.8.1</version>
     </dependency>
     <dependency>
     <groupId>org.springframework.data</groupId>
     <artifactId>spring-data-redis</artifactId>
     <version>1.7.2.RELEASE</version>
     </dependency>
    <!-- end redis 配置-->

    2: 在spring boot   *.properties 配置文件中增加連接配置:
         spring.redis.hostName=127.0.0.1
        spring.redis.port=6379
        spring.redis.password=
        spring.redis.pool.maxActive=8
        spring.redis.pool.maxWait=-1
        spring.redis.pool.maxIdle=8
        spring.redis.pool.minIdle=0
        spring.redis.timeout=0
    3: spring boot 中增加redis 配置連接
          /**
     * Created by Administrator on 2017/2/27.
     
    */
    @Configuration
    @EnableAutoConfiguration
    public class RedisConfig {

        private static Logger logger = LoggerFactory.getLogger(RedisConfig.class);

        @Bean
        @ConfigurationProperties(prefix="spring.redis")
        public JedisPoolConfig getRedisConfig(){
            JedisPoolConfig config = new JedisPoolConfig();
            return config;
        }
      @Bean
        @ConfigurationProperties(prefix="spring.redis")
        public RedisConnectionFactory jedisConnectionFactory(){
            return new JedisConnectionFactory(getRedisConfig());
        }
        @Bean
        public RedisTemplate<String, Object> redisTemplate(){
            RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
            //這個緩存key的序列化方式
            template.setKeySerializer(new StringRedisSerializer());
            //設置redis 轉換 value 通過jdk序列化方法,GenericJackson2JsonRedisSerializer 這個是json形式
            template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
            template.setConnectionFactory(jedisConnectionFactory());
            return template;
        }

        /**
         * 這個是redis 多值操作返回模版對象。比如:map,set ,list 等
         * 
    @return
         
    */  @Bean
        public ValueOperations<String, Object> valueOperations(){
            RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
            //這個緩存key的序列化方式
            redisTemplate.setKeySerializer(new StringRedisSerializer());
            //這個緩存value的序列化方式,通過有jdk序列化,這個是json 序列化
            redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
            redisTemplate.setExposeConnection(true);
            redisTemplate.setConnectionFactory(jedisConnectionFactory());
            redisTemplate.afterPropertiesSet();
            return redisTemplate.opsForValue();
        }
    }
    4: RedisTemplate 使用
       @Service
    public class RedisServiceImpl implements RedisService{
        @Autowired
        private RedisTemplate redisTemplate;
        public boolean expire(final String key, long expire,final TimeUnit unit) {
            return redisTemplate.expire(key, expire, unit);
        }
        @Override
        public void setList(String key, List<String> list, long expire, TimeUnit unit) throws Exception {
            redisTemplate.delete(key);
            redisTemplate.opsForValue().set(key,list,expire,unit);
        }
        public List<String> getList(String key) {
            return (List<String>)redisTemplate.opsForValue().get(key);
        }
        public void remove(String key){
            redisTemplate.delete(key);
        }
        @Override
        public void setKey(String key, String s, long expire, TimeUnit unit) {
            redisTemplate.opsForValue().set(key,s,expire,unit);
        }
        
        @Override
        public String getKey(String key) {
            return (String) redisTemplate.opsForValue().get(key);
        }
        @Override
        public Object getKeyForObject(String key) {
            return redisTemplate.opsForValue().get(key);
        }
        @Override
        public void setMap(String key, Map<String, Object> map, long expire, TimeUnit unit) throws Exception {
            this.expire(key,expire,unit);
            redisTemplate.opsForHash().putAll(key,map);
        }
          @Override
        public void removeKeyForMap(String key, String mapKey) {
            redisTemplate.opsForHash().delete(key,mapKey);
        }
        @Override
        public void putMapKey(String key, String mapKey, String mapValue) {
            redisTemplate.opsForHash().put(key,mapKey,mapValue);
        }
        public Set<String> keys(String o ){
            return redisTemplate.keys(o);
        }
    }

    5:單元測試類

    RunWith(SpringRunner.class)
    @SpringBootTest(classes = MyApplication.class)// 指定spring-boot的啟動類
    //相當于  --spring.profiles.active=dev
    @ActiveProfiles(value = "dev")
    public class RedisCacheTest {
        protected final Logger logger = Logger.getLogger(this.getClass());
        @Autowired
        private RedisService redisService;
        @Autowired
        private RedisTemplate redisTemplate;
        @Test
        public void CacheTest() throws Exception {
            redisService.setKey("111111","222222",100, TimeUnit.SECONDS);
            redisService.getKey("111111");
        }
        @Test
        public void SaveObjectForCacheTest()throws Exception{
            TargetDB targetDB=new TargetDB();
            targetDB.setDbType("111");
            targetDB.setPort("22");
            targetDB.setUserName("zzzlyr");
            redisTemplate.opsForValue().set("key111",targetDB);
            TargetDB targetDB12= (TargetDB) redisTemplate.opsForValue().get("key111");
            System.out.println(targetDB12.toString());
        }
          @Test
        public void SaveMapForCacheTest()throws Exception {
            TargetDB targetDB = new TargetDB();
            targetDB.setDbType("111");
            targetDB.setPort("22");
            targetDB.setUserName("zzzlyr");
            List<TargetDB> list = new LinkedList<TargetDB>();
            list.add(targetDB);
            Map<String, List<TargetDB>> map = new LinkedHashMap<String, List<TargetDB>>();
            map.put("111111111111", list);
            //向緩存中放入map
            redisTemplate.opsForHash().putAll("zzzzz", map);
            //從緩存中獲取map
            Map<String, List<TargetDB>> cacheMap = redisTemplate.opsForHash().entries("zzzzz");
            //Map<String,List<String>> cacheMap= (Map<String, List<String>>) redisTemplate.opsForValue().get("platform-app_AppOperation");
            System.out.println(cacheMap.toString());
        }
    }
    主站蜘蛛池模板: 亚洲熟女综合一区二区三区| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲av成人一区二区三区在线播放| 免费A级毛片无码A∨中文字幕下载| 在线a亚洲v天堂网2019无码| 国产裸体美女永久免费无遮挡| 亚洲精品tv久久久久久久久久| 羞羞视频在线观看免费| 国产成人99久久亚洲综合精品 | 亚洲欧美日韩中文高清www777 | 三年片在线观看免费观看高清电影| 中文字幕亚洲第一在线| 免费在线视频你懂的| 亚洲一区中文字幕在线观看| 日韩精品成人无码专区免费| 亚洲综合av一区二区三区不卡| 永久免费看bbb| 无码 免费 国产在线观看91| 日日噜噜噜噜夜夜爽亚洲精品| baoyu777永久免费视频| 久久综合亚洲色HEZYO社区| 无码专区永久免费AV网站| 亚洲av无码一区二区三区天堂| 亚洲成片观看四虎永久| 韩日电影在线播放免费版| 亚洲黄色在线观看视频| 在线免费观看一级毛片| 无码的免费不卡毛片视频 | 亚洲av激情无码专区在线播放| 成人免费激情视频| 亚洲av日韩专区在线观看| 久久精品国产精品亚洲| 91人成网站色www免费下载| 亚洲综合色丁香婷婷六月图片| 成人亚洲综合天堂| 精品熟女少妇a∨免费久久| 亚洲人成电影网站免费| 亚洲日韩欧洲无码av夜夜摸| AV大片在线无码永久免费| 青青草国产免费国产是公开 | 四虎免费久久影院|