zoukankan      html  css  js  c++  java
  • SpringBoot之整合Redis

    一、SpringBoot整合单机版Redis

    1、在pom.xml文件中加入redis的依赖

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-redis</artifactId>
    <version>1.3.5.RELEASE</version>
    </dependency>

    2、在application.properties文件中增加redis配置

    #redis
    spring.redis.host=localhost
    spring.redis.port=6379
    spring.redis.password=111111

    3、在入口类加入注解@EnableCaching注解,开始缓存

    @SpringBootApplication
    @EnableCaching
    public class SpringbootmybatisApplication {

    public static void main(String[] args) {
    SpringApplication.run(SpringbootmybatisApplication.class, args);
    }
    }

    4、在service实现层的方法上加入@Cacheable注解,意思是加入缓存

    @Override
    @Cacheable(value = "user.list")-----加入缓存,并且key为user.list
    public List<User> findAll() {
    System.out.println("进来了");
    return userAtomMapper.finaAll();
    }
    当第一次访问的时候,会进入这个方法,然后会将结果存入缓存,第二次访问的时候,就不会进入这个方法,会直接从缓存中获取,这个缓存就是redis

    二、SpringBoot整合集群Redis

    1、在application.properties文件中增加redis的集群配置

    #redis集群模式
    spring.redis.cluster.nodes=127.0.0.1:5001,127.0.0.1:5002,127.0.0.1:5003,127.0.0.1:5004,127.0.0.1:5005,127.0.0.1:5006

    2、编写RedisConfig.java

    @Configuration
    public class RedisConfig {
    @Value("${spring.redis.cluster.nodes}")
    private String redisNodes;
    @Bean
    public JedisCluster jedisCluster(){
    String[] clusterNodes = redisNodes.split(",");
    Set<HostAndPort> nodes = new HashSet<>();
    for(String node:clusterNodes){
    String[] hp = node.split(":");
    nodes.add(new HostAndPort(hp[0],Integer.valueOf(hp[1])));
    }
    JedisCluster jedisCluster = new JedisCluster(nodes);
    return jedisCluster;
    }
    }
    ①@Configuration注解意味着这个类是一个配置类,相当于之前的xml文件
    ②@Bean注解相当于之前的<bean/>
    ③使用注解 @Value("${spring.redis.cluster.nodes}"),可以获取再application.properties文件里的spring.redis.cluster.nodes的值
    ④编写jedisCluster构造方法的目的是为了获取集群的所有节点的服务器ip和端口

    3、开始使用RedisCluster

    @Service
    public class UserServiceImpl implements UserService {

    @Autowired
    private JedisCluster jedisCluster;

    @Override
    public String findRedis() {
    return jedisCluster.get("name");
    }
    }

    4、测试

    /**
    * 从集群redis获取
    * @return
    */
    @RequestMapping(value = "findRedis",method = RequestMethod.GET)
    public String findRedis(){
    return userService.findRedis();
    }
    在浏览器输入localhost:8080/findRedis,看到如下结果,说明整合成功。














    
    
  • 相关阅读:
    oracle 巡检脚本(自动化) 规格严格
    应用版日常linux系统巡检shell脚本 规格严格
    linux系统巡检脚本 规格严格
    超级详细RPM 规格严格
    项目管理纪实一:需求调研日志
    其实你不懂程序员
    Silverlight同步(Synchronous)调用WCF服务
    GeoServer地图开发解决方案(一):环境搭建篇
    新年新起点荣获2011年度Silverlight方向Microsoft® MVP奖
    工作中发现 VC 通过 Flex 访问 FusionChart for FLEX 当VC端的驱动数据串过长时,会出现 No Data to Display错误
  • 原文地址:https://www.cnblogs.com/rrb520/p/10265782.html
Copyright © 2011-2022 走看看