Spring boot 引入Redis完整实例

2018-06-23  本文已影响38人  lunabird

参考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> 

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

上一篇下一篇

猜你喜欢

热点阅读