Springboot整合redis

1.创建项目
在这里插入图片描述
在这里插入图片描述
2.修改application.yml文件


spring:
  redis:
    host: 192.168.175.100
    port: 6379
    jedis:
      pool:
        max-active: 20
        max-idle: 10
        max-wait: 10000


在这里插入图片描述
3.创建实体

package com.myl.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.io.Serializable;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User implements Serializable {
    private int id;
    private String name;
    private String sex;
}

4.测试

@Autowired
    private StringRedisTemplate stringRedisTemplate;

    @Test
    void contextLoads() {
        //操作字符串类型 需要获取该字符串的对象stringRedisTemplate.opsForValue();
//        ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
//        opsForValue.set("k1","v1");
//        opsForValue.set("k2","v2");
//        System.out.println(opsForValue.get("k1"));
        HashOperations<String, Object, Object> forHash = stringRedisTemplate.opsForHash();
        forHash.put("h1","name","张三");
        System.out.println(forHash.get("h1", "name"));
        Map<String,String> map =new HashMap<>();
        map.put("age","15");
        map.put("name","ykq");
        map.put("addr","zz");
        forHash.putAll("h2",map);

        Collection list= new ArrayList<>();
        list.add("name");
        list.add("age");
        System.out.println(forHash.multiGet("h2", list));
    }

序列化和反序列化(IO)
序列化: 把内存《JVM本地方法区,静态区,栈,队,程序计算器》中存在的对象存储到磁盘(网络)上.

 //序列化
    @Test
    public void test() throws Exception{
        User user=new User(1,"张三","男");
        //创建ObjectOutputStream用于输出Java内存中的对象到指定磁盘中
        ObjectOutputStream outputStream=new ObjectOutputStream(new FileOutputStream("D://a.txt"));
        outputStream.writeObject(user);//输出
        outputStream.close();
    }
    //反序列化
    @Test
    void test1()throws Exception{
        ObjectInputStream objectInputStream=new ObjectInputStream(new FileInputStream("D://a.txt"));
        Object object = objectInputStream.readObject();
        System.out.println(object);

    }

SpringBoot整合redis序列化

/StringRedisTemplate:存储的value类型必须为String类型。不能存放对象。如果想存放对象,
// 必须把java对象转化为json字符串  借助fastJson工具包
@Autowired
private StringRedisTemplate stringRedisTemplate; //很多
//这个对象可以直接存放对象或集合。 但是再使用前 先为该对象的key和value指定序列化的类型。
@Autowired
private RedisTemplate<Object,Object> redisTemplate;

@Test
public void test(){
    //指定RedisTemplate序列化的方式。
    redisTemplate.setKeySerializer(new StringRedisSerializer());
    //采用的是jdk中自带的序列化方式:
    //redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
    redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
    ValueOperations<Object, Object> forValue = redisTemplate.opsForValue();
    forValue.set("user3",new User(1,"ldh","女"));
}

Springboot使用redis作为缓存
1.使用spring缓存注解,再启动类上开启缓存注解
在这里插入图片描述

2.再相应的方法上添加缓存注
在这里插入图片描述
@CachePut: 先修改数据库,再修改缓存,如果缓存中没有则放入到缓存中该对象。
— cacheNames: 缓存的前缀名称
— key:缓存的后缀名称。

@CacheEvict: 删除数据库并删除缓存。
@Cacheable: 先查询缓存,缓存中如果存在,则直接返回,如果不存在则执行方法体。并把方法体中执行的结果放入到缓存中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值