使用SpringBoot整合SpringDataRedis

2023-05-16

SpringBoot整合SpringDataRedis


1.创建项目添加依赖


  创建SpringBoot项目,并添加如下依赖:

<dependencies>
    <!-- springBoot 的启动器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- Spring Data Redis 的启动器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
    </dependency>
</dependencies>

2.设置application.properties文件

 

spring.redis.jedis.pool.max-idle=10
spring.redis.jedis.pool.min-idle=5
spring.redis.pool.max-total=20
spring.redis.hostName=192.168.88.120
spring.redis.port=6379

 

3.添加Redis的配置类

  添加Redis的java配置类,设置相关的信息。

/**
 * @program: springboot-redis-demo
 * @description: Redis的配置类
 * @author: 波波烤鸭
 * @create: 2019-05-20 23:40
 */
@Configuration
public class RedisConfig {

    /**
     * 1.创建JedisPoolConfig对象。在该对象中完成一些链接池配置
     * @ConfigurationProperties:会将前缀相同的内容创建一个实体。
     */
    @Bean
    @ConfigurationProperties(prefix="spring.redis.pool")
    public JedisPoolConfig jedisPoolConfig(){
        JedisPoolConfig config = new JedisPoolConfig();
		/*//最大空闲数
		config.setMaxIdle(10);
		//最小空闲数
		config.setMinIdle(5);
		//最大链接数
		config.setMaxTotal(20);*/
        System.out.println("默认值:"+config.getMaxIdle());
        System.out.println("默认值:"+config.getMinIdle());
        System.out.println("默认值:"+config.getMaxTotal());
        return config;
    }

    /**
     * 2.创建JedisConnectionFactory:配置redis链接信息
     */
    @Bean
    @ConfigurationProperties(prefix="spring.redis")
    public JedisConnectionFactory jedisConnectionFactory(JedisPoolConfig config){
        System.out.println("配置完毕:"+config.getMaxIdle());
        System.out.println("配置完毕:"+config.getMinIdle());
        System.out.println("配置完毕:"+config.getMaxTotal());

        JedisConnectionFactory factory = new JedisConnectionFactory();
        //关联链接池的配置对象
        factory.setPoolConfig(config);
        //配置链接Redis的信息
        //主机地址
		/*factory.setHostName("192.168.70.128");
		//端口
		factory.setPort(6379);*/
        return factory;
    }

    /**
     * 3.创建RedisTemplate:用于执行Redis操作的方法
     */
    @Bean
    public RedisTemplate<String,Object> redisTemplate(JedisConnectionFactory factory){
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        //关联
        template.setConnectionFactory(factory);

        //为key设置序列化器
        template.setKeySerializer(new StringRedisSerializer());
        //为value设置序列化器
        template.setValueSerializer(new StringRedisSerializer());

        return template;
    }
}

 

4.添加pojo

/**
 * @program: springboot-redis-demo
 * @description: Users
 * @author: 波波烤鸭
 * @create: 2019-05-20 23:47
 */
public class Users implements Serializable {

    private Integer id;
    private String name;
    private Integer age;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Users [id=" + id + ", name=" + name + ", age=" + age + "]";
    }

}

 

5.单元测试

 


@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootRedisDemoApplication.class)
public class SpringbootRedisDemoApplicationTests {

    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    /**
     * 添加一个字符串
     */
    @Test
    public void testSet(){
        this.redisTemplate.opsForValue().set("key", "bobokaoya...");
    }

    /**
     * 获取一个字符串
     */
    @Test
    public void testGet(){
        String value = (String)this.redisTemplate.opsForValue().get("key");
        System.out.println(value);
    }

    /**
     * 添加Users对象
     */
    @Test
    public void testSetUesrs(){
        Users users = new Users();
        users.setAge(20);
        users.setName("张三丰");
        users.setId(1);
        //重新设置序列化器
        this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
        this.redisTemplate.opsForValue().set("users", users);
    }

    /**
     * 取Users对象
     */
    @Test
    public void testGetUsers(){
        //重新设置序列化器
        this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
        Users users = (Users)this.redisTemplate.opsForValue().get("users");
        System.out.println(users);
    }

    /**
     * 基于JSON格式存Users对象
     */
    @Test
    public void testSetUsersUseJSON(){
        Users users = new Users();
        users.setAge(20);
        users.setName("李四丰");
        users.setId(1);
        this.redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Users.class));
        this.redisTemplate.opsForValue().set("users_json", users);
    }

    /**
     * 基于JSON格式取Users对象
     */
    @Test
    public void testGetUseJSON(){
        this.redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Users.class));
        Users users = (Users)this.redisTemplate.opsForValue().get("users_json");
        System.out.println(users);
    }

}

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用SpringBoot整合SpringDataRedis 的相关文章

随机推荐

  • ubuntu18.04中用evolution使用outlook!!(能用浏览器打开的就不考虑这个了)

    1 一般的企业都会给一个配置文档的教程 但是里面也就 mail baba com一条重要信息 其实如果手动配置的话就要知道企业邮箱的服务地址 2 之前在ubuntu上用的雷鸟配置的企业邮箱 但是性能超差 最后发现可以用evolution来玩
  • nginx配置 (转)

    Nginx常见配置 xff1a 多域名对应多端口配置 配置不同域名对应不同端口 配置301跳转使用根域名跳转对应二级域名 添加404网页 禁止ip直接访问 古兰精 博客园 Nginx常见配置 xff1a 多域名对应多端口配置 配置不同域名对
  • ubuntu20.04,无中文输入法 18.04升级到20.04 解决方法 (201513更新)

    rt xff0c 升级过程如下 xff1a sudo apt update amp amp sudo apt full upgrade amp amp sudo apt autoremove amp amp sudo systemctl r
  • ubuntu 20.04 修改文件夹默认图标

    rt 修改图标不用下载什么软件 早个网站下载png或者ico格式的图标 放到要修改的文件夹下或者其他地方 然后右键点击属性 然后左键点击图标的地方 就可以修改了 选择到你想要的图片 保存一下就可以了 ps 如果怕删除掉图标文件 可以在名称前
  • 块存储、文件存储、对象存储这三者和分布式文件存储系统的本质区别(转)

    三类存储从架构上的区别 xff0c 可以见下图 xff1a 为什么需要这三类存储 xff0c 是因为这三类存储适用的应用场景有不一样的地方 块存储 xff1a 要求高性能的应用 xff0c 如数据库需要高IO xff0c 用块存储比较合适
  • ITIL 2011 -- 服务运营的5个流程简介 (上)

    要做一个IT运维管理的项目 xff0c 客户提到了ITIL xff08 IT Infrastructure Library xff09 xff0c 所以谈需求之前我研究了一下ITIL xff0c 发现东西比较多 xff0c 但是里面的服务运
  • html用vue实现模拟聊天窗口

    模拟一个人跟自己聊天 lt html gt 格式省略 lt style type 61 34 text css 34 gt talk con1 width 600px height 500px border 1px solid 666 ma
  • linux下查看所有监听端口

    1 检查所有监听端口 netstat tln awk NR gt 2 sub 4 print 4 2 检查所有监听端口并排序去重 netstat tln awk NR gt 2 sub 4 print 4 sort uniq lsof i
  • django学习笔记(1)

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 课程概况 django框架 3天 drf框架 3天 美多商城 12天 61 61 61 61 61 61 61 61 6
  • gzip和deflate的区别

    我们在配置网站GZip压缩的时候 xff0c 会发现有两个模块可以设置的 xff0c 一个是GZip模块的参数配置 xff0c 另一个是Deflate模块的参数配置 xff0c 他们的设置方法是一样的 刚开始时我不太明白 xff0c 这两地
  • (个人笔记)Django学习笔记整理

    64 为遗漏点或者难点 为重点标记 39 若有打眼 欢迎自取 错误之处 还请指教 DAY 11 24 64 url统一资源定位符限定有2到4kb 因为浏览器地址栏里只能输入这么多东西 1 xff0c MVT 2 xff0c 观看中文文档 3
  • mysql中用alter table建立索引

    1 添加PRIMARY KEY xff08 主键索引 xff09 mysql gt ALTER TABLE table name ADD PRIMARY KEY column 2 添加UNIQUE 唯一索引 mysql gt ALTER T
  • 手把手教你用Google Pixel刷机和Root

    点击上方 Python学习开发 xff0c 选择 加为星标 第一时间关注技术干货 xff01 0x1 刷入系统 强烈推荐使用 android8 的系统的 xff0c android10 的因为安全等级增加了问题比较多 0x2 下载对应文件
  • JavaScript基础(DOM)-Document对象、Element 对象、Attribute 对象、动态的创建 删除 添加节点

    JavaScript HTML DOM xff08 文档对象模型 xff09 通过 HTML DOM xff0c 可访问 JavaScript HTML 文档的所有元素 当网页被加载时 xff0c 浏览器会创建页面的文档对象模型 xff08
  • 【HTML】建站成功默认页面

    lt doctype html gt lt html gt lt head gt lt meta charset 61 34 utf 8 34 gt lt title gt 恭喜 xff0c 站点创建成功 xff01 lt title gt
  • IDEA maven配置本地仓库

    1 Maven下载 在maven官网下载maven安装 xff1a http maven apache org download cgi 下载之后解压到安装路径 xff1a 完成安装 2 Maven本地仓库配置 在本地新建本地仓库文件夹 x
  • 树莓派3安装专用Kali-2.1.2并配置远程桌面

    树莓派3安装专用Kali 2 1 2并配置远程桌面 树莓派3 xff08 Raspberry Pi 3 xff09 是用作渗透测试的好工具 xff0c 尤其是用在无线网络渗透测试 Kali有专为树莓派定制的版本 xff0c 但使用时经常遇到
  • 分布式系统开发实战:分布式计算,分布式计算常用技术

    分布式计算 分布式计算就是将一个大的计算任务分解成多个小任务 xff0c 然后分配给多台计算机分别计算 xff0c 再上传运算结果后统一合并得出数据结论 本章详细介绍分布式计算 分布式计算概述 在过去的20年里 xff0c 互联网产生了大量
  • Android 设置壁纸流程

    W InputManager JNI Input channel object 7d2a123 com android wallpaperpicker com android wallpaperpicker WallpaperPickerA
  • 使用SpringBoot整合SpringDataRedis

    SpringBoot整合SpringDataRedis 1 创建项目添加依赖 创建SpringBoot项目 xff0c 并添加如下依赖 lt dependencies gt lt springBoot 的启动器 gt lt dependen