IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 知识点15--spring boot整合redis -> 正文阅读

[Java知识库]知识点15--spring boot整合redis

本知识点沿用知识点14项目,为大家介绍spring boot如何整合redis,没有redis的去我的主页各类型大数据集群搭建文档–>大数据原生集群本地测试环境搭建三有redis的搭建,redis在spring boot中使用时,虽然没有ES那样在版本上的问题,但是它有个注解问题要注意,我后面会说,我们先来看如何使用redis

第一步:添加依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

第二步:配置spring boot的配置文件

spring.redis.host=192.168.88.188
spring.redis.port=6379

第三步:准备一个测试类,使用redis

package com.wy.scjg;

import com.wy.scjg.bean.User;
import com.wy.scjg.service.UserService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;

import javax.annotation.Resource;
import java.util.List;

@SpringBootTest
public class RedisTest {

    @Resource
    private RedisTemplate redisTemplate;

    @Resource
    private StringRedisTemplate stringRedisTemplate;

    @Autowired
    private UserService userService;

    @Test
    void test(){
        List<User> list = userService.list();
        for(User user:list){
            //RedisTemplate 操作方式
            //redisTemplate.opsForValue().set(user.getId().toString(),user);
            System.out.println(redisTemplate.opsForValue().get(user.getId().toString()));

			//StringRedisTemplate 操作方式 
            //stringRedisTemplate.opsForValue().set("1","1");
            //System.out.println(stringRedisTemplate.opsForValue().get(user.getId().toString()));
        }
    }

}

最后无论用那种方式,先运行set方法在运行get看结果
在这里插入图片描述


spring boot操作redis的方式很简洁,但是我要说两点:

一、我在上面代码注入的时候用的是Resource,这个注解个人不推荐大家用,我这边发生一个很迷的时,我先使用Autowired时报错,无该类型的bean,使用Resource运行成功后Autowired可以用了,这点大家在操作的时候注意你的Autowired注解是否可以首次注入成功。

之所以不推荐使用,是因为Resource这个注解在个别版本的JAVA JDK中是不让使用的,网上对于不能使用这一问题,给了一个解决方法,导入下面这个包

<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.2</version>
</dependency>

注意网上也有人导jsr250包,千万不要导250包,这个包和它的名字一样,它极容易导致冲突,以及可能导致你的service注解失效。

话说回来,你手动导入javax.annotation-api包,也有一定概率导致包冲突,所以大家用的时候要注意这个问题。

二、RedisTemplate 和 StringRedisTemplate 它们是继承关系,StringRedisTemplate 继承自 RedisTemplate ,并将key和value泛型为了String类型,使用上来说StringRedisTemplate 的可读性高

这是因为RedisTemplate 系列化用的是JAVA的Serializable,而StringRedisTemplate 的系列化用的是String类型的系列化,相比之下String类型多了对字节数组的解析,按情况使用,如果你读取操作多,建议使用StringRedisTemplate 因为RedisTemplate操作系列化乱码key对使用不友好

两个类的系列化方式不是定死的,可以变,比如使用RedisTemplate 的时候将系列化方式改成StringRedisTemplate 的

redisTemplate.setKeySerializer(new StringRedisSerializer());

redisTemplate.setValueSerializer(new StringRedisSerializer());

而且如果你向外提供数据的话,你可以将key设置成可读性高的,value设置成json的格式

redisTemplate.setKeySerializer(new StringRedisSerializer());

redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer(XXX.class));

XXX.class是你的实体Bean的class对象

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-06-23 00:50:03  更:2022-06-23 00:50:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:19:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码