您的位置:首页 > 数据库 > Redis

spring boot 整合redis

2018-03-20 14:39 453 查看

1.新建Spring Boot项目

添加spring-boot-starter-data-redis依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
本文会根据StringRedisTemplate、RedisTemplate这两个模板来介绍,其中StringRedisTemplate继承自RedisTemplate,只能操作键值都是String类型的数据。在实际开发中建议使用RedisTemplate<K,V>。查询源码可知RedisTemplate默认使用JdkSerializationRedisSerializer序列化,而StringRedisTemplate则使用StringRedisSerializer。

2.配置redis

在application.properties中配置如下:
1 ########################################################
2 ###Redis (RedisConfiguration)
3 ########################################################
4 spring.redis.database=1
5 spring.redis.host=127.0.0.1
6 spring.redis.port=6379
7 spring.redis.password=
8 spring.redis.pool.max-idle=8
9 spring.redis.pool.min-idle=0
10 spring.redis.pool.max-active=8
11 spring.redis.pool.max-wait=-1
12 spring.redis.timeout=5000

3.编写代码

  1.创建model

1 package com.haq.entity;
2
3 import java.io.Serializable;
4
5 /**
6  * Created by on 2017/2/24.
7  */
8 public class User implements Serializable {
9
10     private static final long serialVersionUId = 1L;
11
12     private String id;
13     private String name;
14
15     public User(){
16         super();
17     }
18
19     public String getId() {
20         return id;
21     }
22
23     public void setId(String id) {
24         this.id = id;
25     }
26
27     public String getName() {
28         return name;
29     }
30
31     public void setName(String name) {
32         this.name = name;
33     }
34
35     @Override
36     public String toString() {
37         return "User{" +
38                 "id='" + id + '\'' +
39                 ", name='" + name + '\'' +
40                 '}';
41     }
42 }

   2.创建RedisService
1 package com.haq.common.redis;
2
3 import org.springframework.beans.factory.annotation.Autowired;
4 import org.springframework.data.redis.core.RedisTemplate;
5 import org.springframework.data.redis.core.StringRedisTemplate;
6 import org.springframework.data.redis.core.ValueOperations;
7 import org.springframework.stereotype.Service;
8
9 import javax.annotation.Resource;
10
11 /**
12  * Created by on 2017/3/1.
13  */
14 @Service
15 public class RedisService {
16
17     @Autowired
18     StringRedisTemplate stringRedisTemplate;
19
20
21     @Resource(name = "stringRedisTemplate")
22     ValueOperations<String, String> valOpsStr;
23
24     @Autowired
25     RedisTemplate<Object, Object> redisTemplate;
26
27     @Resource(name = "redisTemplate")
28     ValueOperations<Object, Object> valOpsObj;
29
30     /**
31      * 根据指定key获取String
32      * @param key
33      * @return
34      */
35     public String getStr(String key){
36         return valOpsStr.get(key);
37     }
38
39     /**
40      * 设置Str缓存
41      * @param key
42      * @param val
43      */
44     public void setStr(String key, String val){
45         valOpsStr.set(key,val);
46     }
47
48     /**
49      * 删除指定key
50      * @param key
51      */
52     public void del(String key){
53         stringRedisTemplate.delete(key);
54     }
55
56     /**
57      * 根据指定o获取Object
58      * @param o
59      * @return
60      */
61     public Object getObj(Object o){
62         return valOpsObj.get(o);
63     }
64
65     /**
66      * 设置obj缓存
67      * @param o1
68      * @param o2
69      */
70     public void setObj(Object o1, Object o2){
71         valOpsObj.set(o1, o2);
72     }
73
74     /**
75      * 删除Obj缓存
76      * @param o
77      */
78     public void delObj(Object o){
79         redisTemplate.delete(o);
80     }
81
82 }

  3.创建RedisController
1 package com.haq.web;
2
3 import com.haq.common.redis.RedisService;
4 import com.haq.entity.User;
5 import org.springframework.beans.factory.annotation.Autowired;
6 import org.springframework.web.bind.annotation.RequestMapping;
7 import org.springframework.web.bind.annotation.RestController;
8
9 /**
10  * Created by on 2017/3/1.
11  */
12 @RestController
13 @RequestMapping("/redis")
14 public class RedisController {
15
16     @Autowired
17     RedisService redisService;
18
19     /**
20      * 设置Str缓存
21      * @param key
22      * @param val
23      * @return
24      */
25     @RequestMapping(value = "setStr")
26     public String setStr(String key, String val){
27         try {
28             redisService.setStr(key, val);
29             return "success";
30         } catch (Exception e){
31             e.printStackTrace();
32             return "error";
33         }
34     }
35
36     /**
37      * 根据key查询Str缓存
38      * @param key
39      * @return
40      */
41     @RequestMapping(value = "getStr")
42     public String getStr(String key){
43         return redisService.getStr(key);
44     }
45
46
47     /**
48      * 根据key产出Str缓存
49      * @param key
50      * @return
51      */
52     @RequestMapping(value = "delStr")
53     public String delStr(String key){
54         try {
55             redisService.del(key);
56             return "success";
57         } catch (Exception e){
58             return "error";
59         }
60     }
61
62
63     /**
64      * 设置obj缓存
65      * @param key
66      * @param user
67      * @return
68      */
69     @RequestMapping(value = "setObj")
70     public String setObj(String key, User user){
71         try {
72             redisService.setObj(key, user);
73             return "success";
74         } catch (Exception e){
75             e.printStackTrace();
76             return "error";
77         }
78     }
79
80     /**
81      * 获取obj缓存
82      * @param key
83      * @return
84      */
85     @RequestMapping(value = "getObj")
86     public Object getObj(String key){
87         return redisService.getObj(key);
88     }
89
90
91     /**
92      * 删除obj缓存
93      * @param key
94      * @return
95      */
96     @RequestMapping(value = "delObj")
97     public Object delObj(String key){
98         try {
99             redisService.delObj(key);
100             return "success";
101         } catch (Exception e){
102             e.printStackTrace();
103             return "error";
104         }
105     }
106
107 }

4.运行测试

1.StringRedisTemplatehttp://127.0.0.1:8080/redis/setStr?key=aa&val=namehttp://127.0.0.1:8080/redis/getStr?key=aahttp://127.0.0.1:8080/redis/delStr?key=aa2.RedisTemplatehttp://127.0.0.1:8080/redis/setObj?key=aa&id=1&name=testhttp://127.0.0.1:8080/redis/getObj?key=aahttp://127.0.0.1:8080/redis/delObj?key=aa以上地址都能通过测试,在这里就不一一截图了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: