springboot整合redis

本文详细介绍了如何在SpringBoot中整合Redis,包括使用StringRedisTemplate进行字符串和Hash操作,RedisTemplate的序列化配置,以及Redis作为缓存的场景分析和缓存工具类的创建。内容涵盖依赖引入、配置、实体类序列化以及缓存的适用情况和实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.StringRedisTemplate

1.1.引入相关的依赖

1.2.注入StringRedisTemplate该类对象

1.3配置redis的地址

1.4.使用StringRedisTemplate

1.4.1.字符串操作

1.4.2.对hash类型的操作。

2.RedisTemplate

2.1.自动注入

2.2.使用RedisTemplate

2.3.类的序列化

3.序列化的工具类

4.redis的使用场景

4.1.作为缓存

4.1.1.缓存的作用

4.1.2.什么样的数据适合放入缓存

4.1.3.使用redis作为缓存

4.1.4.缓存的工具类


springboot对redis的操作封装了两个StringRedisTemplate和RedisTemplate类,StringRedisTemplate是RedisTemplate的子类,StringRedisTemplate它只能存储字符串类型,无法存储对象类型。要想用StringRedisTemplate存储对象必须把对象转为json字符串。

1.StringRedisTemplate

1.1.引入相关的依赖

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

1.2.注入StringRedisTemplate该类对象

 @Autowired
 private StringRedisTemplate redisTemplate;

1.3配置redis的地址

#配置 redis的地址
spring.redis.port=6379
spring.redis.host=192.168.74.152

1.4.使用StringRedisTemplate

1.4.1.字符串操作

       //里面所有的key还是value field它的类型必须都是String类型。
    //因为key和value获取field他们使用的都是String的序列化方式
 @Autowired
    private StringRedisTemplate redisTemplate;

    @Test
    void contextLoads() {
        //对字符串进行操作
        //删除指定的key
       // redisTemplate.delete("k1");
        //查看指定所有的key
       // redisTemplate.keys("k1");
        //是否存在指定的key
       // redisTemplate.hasKey("k1");
        //对字符数组进行操作  对每个类型的操作都封装成一个方法
        ValueOperations<String, String> stringStringValueOperations = redisTemplate.opsForValue();
        //第一个参数是key 第二个参数是key的值  第三个参数时间长度 第四个参数时间类型
        stringStringValueOperations.set("k11","李四",30, TimeUnit.SECONDS);
        //第一个参数是key 第二个参数是key的值  第三个参数时间长度 第四个参数时间类型  setIfAbsent等价于setnx,如果存入成功
        //返回true 失败返回false
        stringStringValueOperations.setIfAbsent("k1","张三",30,TimeUnit.SECONDS);
        //最某个key进行追加值
        stringStringValueOperations.append("k1","该吃饭了");
        //递减
       // stringStringValueOperations.decrement();
        //获取指定的key
        //stringStringValueOperations.get();
        //递增
        //stringStringValueOperations.increment();
        //批量递增
        //stringStringValueOperations.multiSet();

    }

 1.4.2.对hash类型的操作。

  @Test
    public void Test01(){
        //对hash类型的操作。
        HashOperations<String, Object, Object> forHash = redisTemplate.opsForHash();
        forHash.put("k2","name","张三");
        forHash.put("k2","age","15");
        Map<String,String> map=new HashMap<>();
        map.put("name","李四");
        map.put("age","25");
        forHash.putAll("k3",map);
        //获取指定key和field获取对应value的值
        Object o = forHash.get("k2", "name");
        System.out.println(o);
        
        //获取所有指定key 的field
        Set<Object> k1 = forHash.keys("k2");
        System.out.println(k1);
        
        //获取指定key 的value
        List<Object> k11 = forHash.values("k2");
        System.out.println(k11);


        //获取k2对于的所有的field和value
        Map<Object, Object> k12 = forHash.entries("k2");
        System.out.println(k12);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值