Spring boot 整合Redis

🎈博客主页:🌈我的主页🌈
🎈欢迎点赞 👍 收藏 🌟留言 📝 欢迎讨论!👏
🎈本文由 【泠青沼~】 原创,首发于 CSDN🚩🚩🚩
🎈由于博主是在学小白一枚,难免会有错误,有任何问题欢迎评论区留言指出,感激不尽!🌠个人主页



REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统,Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型

🌟 一、导入POM.xml配置文件

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

🌟 二、编写application.properties文件

spring.redis.host=127.0.0.1
spring.redis.port=6379
//如果你没有设置密码项就不填空着
spring.redis.password=

🌟 三、分析RedisAutoConfiguration类

    @Bean
	@ConditionalOnMissingBean(name = "redisTemplate")
	@ConditionalOnSingleCandidate(RedisConnectionFactory.class)
	public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
		RedisTemplate<Object, Object> template = new RedisTemplate<>();
		template.setConnectionFactory(redisConnectionFactory);
		return template;
	}

	@Bean
	@ConditionalOnMissingBean
	@ConditionalOnSingleCandidate(RedisConnectionFactory.class)
	public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
		return new StringRedisTemplate(redisConnectionFactory);
	}

这里主要使用RedisTemplate和stringRedisTemplate两个类用来redis的日常使用,所有的方法都集成在此类中,RedisTemplate可以存储带对象的键值对,而stringRedisTemplate只能存储字符串的键值对

🌟 四、代码测试

🌟🌟 4.1、存储对象键值对

    @Test
    void contextLoads() {
        User user = new User();
        user.setName("dong");
        user.setPassword("123");
        ValueOperations ops = redisTemplate.opsForValue();
        ops.set("u",user);
        User u = (User)ops.get("u");
        System.out.println(u);

    }

其中User必须要能自动序列化,加入实现接口Serializable

public class User implements Serializable {
    private String name;
    private String password;

在这里插入图片描述

🌟🌟 4.2、存储字符串键值对

    @Test
    void contextLoads1() {
        ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();
        ops.set("djy","12345600");
        String djy = ops.get("djy");
        System.out.println(djy);
    }

🌟🌟 4.3、用字符串键值对存储对象

使用ObjectMapper对象进行序列化

    @Test
    void contextLoads2() throws JsonProcessingException {
        ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();
        User user = new User();
        user.setName("wang");
        user.setPassword("123123");
        ObjectMapper om = new ObjectMapper();
        String s = om.writeValueAsString(user);
        ops.set("u",s);
        String u = ops.get("u");
        User user1 = om.readValue(u, User.class);
        System.out.println(user1);
    }

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值