springboot中整合Redis的详细讲解

时间:2021/4/2 15:18:00来源:互联网 作者:flyso 点击: 992 次

springboot整合Redis

1、添加依赖

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

2、配置application.yml
在这里插入图片描述

3、注入模板对象

@RunWith(SpringRunner.class)

@SpringBootTest

class SpringbootRedisApplicationTests {


    @Autowired

    private RedisTemplate redisTemplate;


    @PostConstruct

    public void init(){

        //配置String类型的key  value序列化方式

        redisTemplate.setStringSerializer(new StringRedisSerializer());

        redisTemplate.setValueSerializer(new StringRedisSerializer());

    }


    @Test

    void contextLoads() {

        redisTemplate.opsForValue().set("age",12);

        Object age = redisTemplate.opsForValue().get("age");

        System.out.println(age);

        System.out.println("操作成功");

    }


//获取几种数据结构的对象

    @Test

    public void getRedisType(){

        //1、操作字符串数据类型

        redisTemplate.opsForValue();

        //2、操作hash的数据类型

        redisTemplate.opsForHash();

        //3、操作List的数据类型

        redisTemplate.opsForList();

        //4、操作Set的数据类型

        redisTemplate.opsForSet();

        //5、操作hSet的数据类型

        redisTemplate.opsForZSet();

        //6、操作基数的数据类型

        redisTemplate.opsForHyperLogLog();

    }

}

注意:不能在yml配置文件中配置自定义序列化,可以在springboot启动类或者测试类中,通过@PostConstruct注解来触发执行方法,从而达到配置自定义序列化的效果。

补充:

1.@PostConstruct说明

被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。

2.@PreDestroy说明

被@PreDestroy修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。被@PreDestroy修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前。


总结

1、当项目报以下错误:Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set

报错的原因:是redis服务没设置密码,而项目配置文件中写了有redis密码

解决方案:

1)把项目配置文件中的密码password设置为空或者不设置。

2)设置redis服务密码

——可通过直接修改redis.conf配置文件中的requirepass属性方式,如果修改不生效,可通过命令方式修改,进入redis的客户端

redis 127.0.0.1:6379> CONFIG SET requirepass “root”

OK

redis 127.0.0.1:6379> AUTH root

Ok

然后重启项目就可以连接本机的redis服务了。

————————————————

Copyright © 2005 - 2016 flyso.cn. 飞搜 版权所有 鄂ICP备11002783号-3