<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 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    spring boot redis 配置

    Posted on 2017-08-07 17:38 為自己代言 閱讀(599) 評(píng)論(0)  編輯  收藏 所屬分類: spring cloud 微服務(wù)
    1:pom.xml 找自己spring boot 對(duì)應(yīng)的版本
      <!-- 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>();
            //這個(gè)緩存key的序列化方式
            template.setKeySerializer(new StringRedisSerializer());
            //設(shè)置redis 轉(zhuǎn)換 value 通過jdk序列化方法,GenericJackson2JsonRedisSerializer 這個(gè)是json形式
            template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
            template.setConnectionFactory(jedisConnectionFactory());
            return template;
        }

        /**
         * 這個(gè)是redis 多值操作返回模版對(duì)象。比如:map,set ,list 等
         * 
    @return
         
    */  @Bean
        public ValueOperations<String, Object> valueOperations(){
            RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
            //這個(gè)緩存key的序列化方式
            redisTemplate.setKeySerializer(new StringRedisSerializer());
            //這個(gè)緩存value的序列化方式,通過有jdk序列化,這個(gè)是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:?jiǎn)卧獪y(cè)試類

    RunWith(SpringRunner.class)
    @SpringBootTest(classes = MyApplication.class)// 指定spring-boot的啟動(dòng)類
    //相當(dāng)于  --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());
        }
    }
    主站蜘蛛池模板: 国产精品冒白浆免费视频| a级成人免费毛片完整版| 污污网站免费观看| 亚洲视频在线一区二区| 国产精品久久亚洲一区二区| 最近中文字幕免费mv视频7| 亚洲人成人77777网站不卡| 久久久青草青青国产亚洲免观| 久久亚洲精品无码网站| 国产高清免费的视频| 国产亚洲福利精品一区二区| 又粗又硬免费毛片| 免费一区二区三区在线视频| 亚洲精品国产日韩无码AV永久免费网| 日韩久久无码免费毛片软件| 国产亚洲人成A在线V网站| 成人免费乱码大片A毛片| 亚洲av永久无码精品国产精品| 亚洲爆乳无码精品AAA片蜜桃| 精品久久久久久久免费人妻| 另类专区另类专区亚洲| 亚洲伊人久久综合影院| 免费av片在线观看网站| 免费人成在线观看网站品爱网日本 | 国产综合亚洲专区在线| 成全在线观看免费观看大全| 亚洲精品视频在线| 国产2021精品视频免费播放| 亚洲GV天堂无码男同在线观看| 免费大黄网站在线观| 永久在线观看免费视频| 亚洲黄色激情视频| 四虎永久在线精品视频免费观看| 一本大道一卡二大卡三卡免费| 亚洲人成电影福利在线播放| 成**人免费一级毛片| 亚洲男人的天堂在线播放| 国产精品无码免费播放| 色老头综合免费视频| 日产亚洲一区二区三区| 国产精品免费看久久久无码|