SpringBoot集成Redis的环境部署以及操作Redis

Spring Boot 集成Redis

1.环境配置

  1. 添加redis依赖
    在老项目添加,可以在pom.xml文件直接添加,通过edit starters插件在plugins可以下载
    在这里插入图片描述
    搜索redis,选择第一个点击add如何点击ok,即可。如果创建新项目,可以直接在创建时搜索redis依赖添加

在这里插入图片描述

  1. 配置连接信息,host为连接的地址,port为端口号默认为6379,database选择的数据库不屑默认为0.

redis连接配置信息
spring.redis.host=124.221.76.124
不写默认端口号为6379,数据库为0
spring.redis.database=15
spring.redis.port=6379

2.操作Redis

2.1 代码形式操作Redis

首先创建RedisController类进行redis的写操作

package com.example.sp_redis.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * @author zq
 * @date 2023-07-26 13:15
 */

@RestController
public class RedisContoller {
    //1.引入redis模板(redis本身)
    @Resource
    private StringRedisTemplate stringRedisTemplate;

    @RequestMapping("/set")

    public String setRedis(){
        stringRedisTemplate.opsForValue().set("username","zq");
        return "redis写操作";
    }
}

访问localhost:8080/set,打开我们的redis客户端,发现我们的数据库15成功写入username:zq

在这里插入图片描述

在这里插入图片描述

关于redis客户端,可以在官网下载。我们可以在自己的云服务器上下载redis,然后在redis.conf文件中注释掉bind 127.0.0.1并且将“protected-mode yes” 改为“protected-mode no”;具体操作可以查看我的关于Redis的安装与配置的博客。

关于Redis的安装与配置

接下来进行Redis的读操作:

 @RequestMapping("/get")
    public String getRedis(){
        String res = stringRedisTemplate.opsForValue().get("username");
        return res;
    }

访问地址:

在这里插入图片描述

注意:在我们进行Redis写的操作时,set()存在第三个参数,就是过期时间,我们可以设置存储数据多久过期,所以如果此时你读取不到数据,那么可能就是数据过期了可以尝试重新存储或者设置一个较长的过期时间。

2.2 使用注解方式操作Redis

主要有以下几种注解:

  • @Cacheable:查询/添加,判断redis是否有缓存,如果没有就将当前方法返回值存入redis中,如果存在就直接返回。
  • @CachePut:修改,将方法返回值更新到redis缓存中。
  • @CacheEvict:删除,将redis中对应的缓存删除。

首选我们要开启全局注解缓存,在启动类上加@EnableCaching

然后新建一个类进行注解式操作redis

查询或者添加的操作如下:

package com.example.sp_redis.controller;

import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RedisAnnotationController {

    /**
     * 存入或读取缓存
     * @param name
     * @param pnumber
     * @return
     */
    @RequestMapping("/ann-get")
//    注意多个参数时如何设置
    @Cacheable(value = "spring.cache",key = "#name+#pnumber")
    public String get(String name,String pnumber){
        if (!StringUtils.hasLength(name)||!StringUtils.hasLength(pnumber)){
            return null;
        }
        return "name=" +name+"|pnumber=" +pnumber;

    }

}

实现结果如下,成功存入了数据;

在这里插入图片描述

进行删除操作:

 @RequestMapping("/del")
    @CacheEvict(value = "spring.cache", key =  "#name+#pnumber")
    public String del(String name,String pnumber){

        return "delete success";
    }

进行缓存的更新操作:

 @CachePut(value = "spring.cache",key = "#name+'-'+#pnumber")
    @RequestMapping("/put")
    public String put(String name,String pnumber){
        if (!StringUtils.hasLength(name)||!StringUtils.hasLength(pnumber)){
            return null;
        }
        System.out.println("执行了put方法");
        return "name=" +name+"->>"+"pnumber="+pnumber;
    }

我们修改数据存储格式执行put方法之后,再次执行个体方法,可以发现缓存改变了

put方法结果

在这里插入图片描述

get方法结果:

在这里插入图片描述

注意:当我们多次执行get方法时,我们会发现控制台就输出了一次执行get方法,因为我们缓存中已经有了数据。之后的get方法就是直接从缓存中取数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值