美文网首页
Spring boot 引入Redis完整实例

Spring boot 引入Redis完整实例

作者: lunabird | 来源:发表于2018-06-23 16:35 被阅读38次

    参考https://blog.csdn.net/wu6660563/article/details/52902778
    首先,在pom文件中引入redis的依赖:

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
            </dependency>
    

    在application.yml配置文件中配置redis。

    spring:
      cache:
        type: redis
        redis:
          database: 0 # Redis数据库索引(默认为0
          host: 127.0.0.1 # Redis服务器地址
          password: # Redis服务器连接密码(默认为空)
          port: 6379 # Redis服务器连接端口
          timeout: 0 # 连接超时时间(毫秒)
    
          pool:
            max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
            max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
            max-idle: 8 # 连接池中的最大空闲连接
            min-idle: 0 # 连接池中的最小空闲连接
    
    

    定义一个简单的测试类:


    image.png

    HelloRedisController和User的内容如下:

    @RestController
    public class HelloRedisController {
    
        @Autowired
        private StringRedisTemplate stringRedisTemplate;
    
        @Autowired
        private RedisTemplate redisTemplate;
    
        @RequestMapping("/helloRedis")
        public String index() {
            // 保存字符串
            stringRedisTemplate.opsForValue().set("aaa", "111");
            String string = stringRedisTemplate.opsForValue().get("aaa");
            System.out.println(string);
    
            // 保存对象
            User user = new User("超人", 20);
            redisTemplate.opsForValue().set(user.getUserName(), user);
    
            user = new User("batman", 30);
            redisTemplate.opsForValue().set(user.getUserName(), user);
    
            user = new User("spiderman", 40);
            redisTemplate.opsForValue().set(user.getUserName(), user);
    
            User u1 = (User)redisTemplate.opsForValue().get("超人");
            User u2 = (User)redisTemplate.opsForValue().get("batman");
            User u3 = (User)redisTemplate.opsForValue().get("spiderman");
    
            System.out.println(u1.getUserName()+"\t"+u1.getAge());
            System.out.println(u2.getUserName()+"\t"+u2.getAge());
            System.out.println(u3.getUserName()+"\t"+u3.getAge());
    
            return "Hello redis";
        }
    }
    
    
    public class User implements Serializable {
        String userName;
        int age;
    
        public User(){
    
        }
    
        public User(String userName,int age){
            this.userName = userName;
            this.age = age;
        }
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }
    

    这里的User类需要注意的是必须要有一个默认的构造函数,不然当从redis中取出对象时会报无法序列化的错误。

    打开浏览器然后输入项目地址:http://localhost:8881/helloRedis,看到控制台会打印出如下信息:

    image.png
    说明正确的连接到redis并且可以存取字符串和对象了。
    还可以自己连上redis的客户端redis-cli来查看一下我们的缓存内容:
    [huangpeng@hpMac:] ~/Downloads/Redis3.0 $ redis-cli
    127.0.0.1:6379> get aaa
    "111"
    127.0.0.1:6379> get 超人
    "{\"@class\":\"com.huangpeng.cache.test.User\",\"userName\":\"\xe8\xb6\x85\xe4\xba\xba\",\"age\":20}"
    127.0.0.1:6379> get batman
    "{\"@class\":\"com.huangpeng.cache.test.User\",\"userName\":\"batman\",\"age\":30}"
    127.0.0.1:6379> 
    

    可以通过调整配置文件中的参数来调整缓存的超时时间等参数项。

    相关文章

      网友评论

          本文标题:Spring boot 引入Redis完整实例

          本文链接:https://www.haomeiwen.com/subject/mtxdyftx.html