redis的安装和springboot整合redis

Redis的安装,以及SpringBoot整合Redis实现缓存操作

一、Redis的安装

1、使用docker拉取redis镜像

docker pull redis

2、制作redis的容器

docker run --name -p 6379:6379 -d redis

3、查看redis容器是否启动

docker ps -a
---如果没有启动就启动redis
docker start  容器ID

二、SpringBoot整合Redis实现缓存

1、配置yml

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/studentdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    username: root
    password: root
  redis:
    host: 192.168.159.135
    port: 6379
    password:
    database: 0

logging:
  level:
    com.changan.springboot_redis.mapper.*: debug
debug: true

mybatis:
  type-aliases-package: com.tdh.studentmgr.pojo
  mapper-locations: classpath:mapper/*.xml

2、在service层的实现类中进行逻辑处理

@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
    private StudentMapper studentMapper;

    @Autowired
    private RedisTemplate redisTemplate;

    @Override
    public List<Student> findAll() {
      		String key="Student";//设置键名
      		ListOperations<String,Student> list = redisTemplate.opsForList();
      		Boolean bool=redisTemplate.hasKey(key);//判断是否存在该键名
      		 if (bool){
            return   list.range(key,0,-1);//如果存在直接从缓存查询返回集合
        }else {
             List<Student> students = studentMapper.findAll();
            System.out.println(students);
            list.leftPushAll(key,students);//如果不存在将设置好的key键值和查询数据库的结果放入
            return  students ;//既然都查出来了就直接返回咯
        }
    }

    @Override
    public Student findById(Integer id) {
        String key = "student_"+id;
        //先去redis数据库中查询有没有对应的key值
        Boolean hasKey = redisTemplate.hasKey(key);
        //得到操作string类型的redis对象
        ValueOperations<String,Student> operations = redisTemplate.opsForValue();
        if(hasKey){//如果有
            //通过key获取value返回给服务器
            Student student = operations.get(key);
            return student;
        }
        Student byId = studentMapper.findById(id);
        operations.set(key,byId);
        return byId;
    }

3、序列化设置 RedisTemplateConfig

package com.changan.springboot_redis.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;

import java.net.UnknownHostException;

@Configuration
public class RedisTemplateConfig {
    //覆盖默认的自动配置
    @Bean
    public RedisTemplate<Object, Object> redisTemplate(
            RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {

        RedisTemplate<Object, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(redisConnectionFactory);
        //修改默认的序列化规则
        //1.创建序列化规则对象
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer=new Jackson2JsonRedisSerializer(Object.class);
        //2.更改默认的序列化规则
        template.setDefaultSerializer(jackson2JsonRedisSerializer);
        return template;
    }
}

4、控制层(不做逻辑处理,直接调用就好!)

@RestController
public class StudentController {

    @Autowired
    private StudentService studentService;

    @GetMapping("/students")
    public List<Student> findAll(){
        return studentService.findAll();
    }

    @GetMapping("/student/{id}")
    public Student findById(@PathVariable("id")Integer id){
        return studentService.findById(id);
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis Hash 结构是一种数据结构,它允许你将键值对存储为哈希表的形式,其中每个键都是唯一的,并且可以关联任意类型的数据(包括字符串、列表、集合或有序集合)。在 Spring Boot 中整合 Redis,你可以使用 Spring Data Redis 库,它简化了与 Redis 的交互。 Spring Boot 整合 Redis 的步骤如下: 1. 添加依赖:在你的 `pom.xml` 或 `build.gradle` 文件中添加 Spring Data Redis 和相关 Redis客户端库的依赖,如 lettuce 或 Jedis。 ```xml <!-- Maven --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- Gradle (Lettuce) --> implementation 'org.springframework.boot:spring-boot-starter-data-redis:2.5.x' implementation 'io.lettuce:lettuce-core:6.0.x' ``` 2. 配置 Redis:在 `application.properties` 或 `application.yml` 中配置 Redis 的连接信息,如主机名、端口和密码(如果有)。 ```yaml spring.redis.host=your-redis-host spring.redis.port=your-redis-port spring.redis.password=your-password ``` 3. 使用 `HashOperations`:Spring Data Redis 提供了 `HashOperations` 接口,你可以通过注入 `RedisTemplate` 或 `HashOperations` 对象来操作 Redis 的 Hash 结构。 ```java @Autowired private RedisTemplate<String, Object> redisTemplate; // 使用方法 HashOperations<String, String, Object> hashOps = redisTemplate.opsForHash("your-hash-key"); hashOps.put("field1", "value1"); hashOps.get("field1"); // 获取 value1 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值