gpt4 book ai didi

Springboot/Springcloud项目集成redis进行存取的过程解析

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 29 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Springboot/Springcloud项目集成redis进行存取的过程解析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

前言:redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合),zset(sorted set:有序集合).

1、redis去官网https://redis.io/download下载后解压

然后点击里面的redis-server.exe(windows平台)即可正常启动 。

Springboot/Springcloud项目集成redis进行存取的过程解析

2、在项目中添加redis依赖

?
1
2
3
4
<dependency>
       <groupid>org.springframework.boot</groupid>
       <artifactid>spring-boot-starter-data-redis</artifactid>
</dependency>

3、redis的使用

在需要使用redis的地方通过注解注入,比如在controller中添加 。

?
1
2
3
4
5
6
7
8
9
@restcontroller
public class rediscontroller {
     @autowired
     private stringredistemplate stringredistemplate; //只支持redis五大类型中的字符串类型
     @autowired
     private redistemplate redistemplate; //支持redis五大类型中的所有类型
 
 
}

4、字符串类型存取(k,v)

?
1
2
3
4
5
6
@requestmapping ( "/setstring" )
     public object  setstring(){
         stringredistemplate.boundvalueops( "s" ).set( "辣椒" ); //存入
 
         return stringredistemplate.boundvalueops( "s" ).get(); //读取
     }

访问接口查看结果:

Springboot/Springcloud项目集成redis进行存取的过程解析

5、存取对象(k,object)

使用你自己的对象进行存取,我这里使用person对象 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package com.star.pojo;
 
import java.io.serializable;
 
public class person implements serializable {
     private string name;
     private int age;
     private string add;
 
     public person() {
     }
 
     public person(string name, int age, string add) {
         this .name = name;
         this .age = age;
         add = add;
     }
 
     public string getname() {
         return name;
     }
 
     public void setname(string name) {
         this .name = name;
     }
 
     public int getage() {
         return age;
     }
 
     public void setage( int age) {
         this .age = age;
     }
 
     public string getadd() {
         return add;
     }
 
     public void setadd(string add) {
         add = add;
     }
 
     @override
     public string tostring() {
         return "person{" +
                 "name='" + name + '\ '' +
                 ", age=" + age +
                 ", add='" + add + '\ '' +
                 '}' ;
     }
}
 
person.java
?
1
2
3
4
5
6
7
@requestmapping ( "/setperson" )
     public object  setperson(){
         person person = new person( "鱼er" , 151 , "北京" );
         redistemplate.boundvalueops( "p" ).set(person); //存入
 
         return redistemplate.boundvalueops( "p" ).get(); //读取
     }

Springboot/Springcloud项目集成redis进行存取的过程解析

6、list类型(k,list)

?
1
2
3
4
5
6
7
8
9
10
11
@requestmapping ( "/setlist" )
     public list<string> setlistredis(){
         list<string> list= new arraylist<>();
         list.add( "手头" );
         list.add( "苹果" );
         list.add( "辣椒" );
 
         this .redistemplate.boundvalueops( "listk" ).set(list); //存入
 
         return (list<string>) this .redistemplate.boundvalueops( "listk" ).get(); //读取
     }

Springboot/Springcloud项目集成redis进行存取的过程解析

7、hash类型(k,k,value)

?
1
2
3
4
5
6
7
8
9
10
11
@requestmapping ( "/sethash" )
     public list<string> sethash(){
         list<string> list= new arraylist<>();
         list.add( "大书" );
         list.add( "酸菜" );
         list.add( "鸡蛋" );
 
         this .redistemplate.boundhashops( "thing" ).put( "h" ,list); //存入
         return (list<string>) this .redistemplate.boundhashops( "thing" ).get( "h" ); //读取
 
     }

Springboot/Springcloud项目集成redis进行存取的过程解析

8、然后打开redis desktop manager工具可以看到你存储的数据

其安装及连接方式不用多说,基本是个人都会,实在不会可以去这里瞧瞧.

Springboot/Springcloud项目集成redis进行存取的过程解析

9、如果想要在单元测试中进行存取

添加测试依赖,junit必须4.12以上 。

?
1
2
3
4
5
6
7
8
9
10
11
<dependency>
        <groupid>org.springframework.boot</groupid>
        <artifactid>spring-boot-starter-test</artifactid>
</dependency>
 
<dependency>
        <groupid>junit</groupid>
        <artifactid>junit</artifactid>
        <version> 4.12 </version>
        <scope>test</scope>
</dependency>

在要进行存取的类上添加注解@runwith、@springboottest,意思是启动单元测试时启动当前项目的启动类,因为启动类里面的@springbootapplication里面包含了包扫描@componentscan,不然注入stringredistemplate或redistemplate时注入失败报空指针,当然也可以在启动类里面返回new stringredistemplate或new redistemplate并且加注解@bean的方式处理注入失败问题,这里直接通过加注解的方式处理.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@runwith (value = springjunit4classrunner. class )
//redisapp为启动类名字
@springboottest (classes = {redisapp. class })
public class redisapptest {
     @autowired
     private stringredistemplate stringredistemplate;
     @autowired
     private redistemplate redistemplate;
 
     @test
     public void setstringredis(){
         this .stringredistemplate.boundvalueops( "name2" ).set( "熊大" );
         system.out.println( "ok" );
     }
     @test
     public void getstringredis(){
         string name = this .stringredistemplate.boundvalueops( "name2" ).get();
         system.out.println( "ok:" +name);
     }
}

在redis desktop manager工具中可以看到存储成功了,在控制台也可以读取 。

Springboot/Springcloud项目集成redis进行存取的过程解析

Springboot/Springcloud项目集成redis进行存取的过程解析

9、实际使用思路

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@autowired
     private redistemplate redistemplate;
     /**
         * 首次访问时,如果redis没有数据,就访问数据库,然后把访问到的数据存到redis
         * 后续访问时,直接查询redis
         */
         @override
         public list<person> findbypersonid( long id) { // 先查看缓存中有没有
             list<person> list = (list<person>) redistemplate.boundvalueops(id).get();         if (list== null ){
          system.out.println( "redis中没有,开始从数据库中获取" );
          .........           //查询数据库得到list<person> list =xxxxxx;
                 redistemplate.boundvalueops(id).set(list); //将从数据库查到的数据添加到redis中以备下次查找
             } else {
                 system.out.println( "redis中存在,list是直接从缓存中获取的,没查数据库" );
             }
             return list;
         }

到此这篇关于springboot/springcloud项目中集成redis进行存取的文章就介绍到这了,更多相关springcloud集成redis存取内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://www.cnblogs.com/smiles365/p/15236896.html 。

最后此篇关于Springboot/Springcloud项目集成redis进行存取的过程解析的文章就讲到这里了,如果你想了解更多关于Springboot/Springcloud项目集成redis进行存取的过程解析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com