热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringBoot整合redis实例

SpringBoot整合redis实例,Go语言社区,Golang程序员人脉社

1,安装redis

在centos系统上使用yum install redis

显示以上信息即安装完成

这个时候我们是可以启动redis的,但是其他的服务器是无法访问redis的,目前比较新版本的redis默认都会打开保护模式并且绑定本机ip地址,所以这个时候我们需要修改redis.conf配置文件,将保护模式去除添加自己需要绑定的服务器或者直接全部去除。

不知道redis.conf文件在哪里的可以命令:find / -name redis.conf

将protected-mode yes改为no

完成后我们就可以启动redis了,使用命令:service redis start

显示OK表明已经启动成功了

以上就是我们的准备工作,接下来就是具体的代码实现对redis的访问了

2,引入springboot帮我们自动配置redis的jar包

3,添加redis配置文件

@Configuration
public class RedisConfig {
    
    //配置redis模板
    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){
        RedisTemplate redisTemplate = new RedisTemplate<>();
        //采用jackson2JsonRedisSerializer包进行序列化
        Jackson2JsonRedisSerializer jackson2JsOnRedisSerializer= new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setVisibility(PropertyAccessor.ALL,JsonAutoDetect.Visibility.ANY);
        objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
        redisTemplate.setDefaultSerializer(jackson2JsonRedisSerializer);
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        return redisTemplate;
    }
}

配置文件如下:

server.port=80
spring.redis.database=1
spring.redis.host=172.16.1.165
spring.redis.port=6379
spring.redis.jedis.pool.max-idle=8
spring.redis.jedis.pool.min-idle=0
spring.redis.lettuce.pool.max-active=8

这里需要注意的是我们采用的是Jackson2JsonRedisSerializer来序列化我们的javabean,实际上spring自动化帮我们默认配置了一个JdkSerializationRedisSerializer,这两个是有区别的,Jackson2JsonRedisSerializer相比于JdkSerializationRedisSerializer结构更加清晰,存储的字节少,速度快,并且不需要使用Serializable实例化实体类。

4,配置service类和我们需要测试的实体类

public class Student implements Serializable {
    private String name;
    private String sex;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}
public class User implements Serializable {
    private String username;
    private String password;

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUsername() {
        return username;

    }

    public void setUsername(String username) {
        this.username = username;
    }

}
@Service
public class RedisService {

    @Autowired
    private RedisTemplate redisTemplate;

    @Autowired
    private StringRedisTemplate stringRedisTemplate;


    @Resource(name = "redisTemplate")
    ValueOperations valueOperations;

    @Resource(name = "stringRedisTemplate")
    ValueOperations valueStringOperations;

    private HashSet students = new HashSet();
    private HashSet users = new HashSet();

    public void addStudent(Student student){
        valueOperations.set(student.getName(),student);
    }

    public Object  getStudent(String name){
        Object reslut = valueOperations.get(name);
        return reslut;
    }

    public void addUser(User user){
        valueStringOperations.set(user.getUsername(),user.getPassword());
    }

    public Object  getUser(String username){
        String reslut = valueStringOperations.get(username);
        return reslut;
    }

}

5,配置controller类

@RestController
public class TestController {
    
    @Autowired
    private RedisService redisService;
    
    @RequestMapping("/putstudent")
    public String putStudent(Student student){
        redisService.addStudent(student);
        return "放入Student成功!!!";
    }
    
    @RequestMapping("/getstudentvalue")
    public Student getStudentValue(String name){
        Object result = redisService.getStudent(name);
        return (Student)result;
    }
    
    @RequestMapping("/putUser")
    public String putUser(User user){
        redisService.addUser(user);
        return "放入User成功!!!";
    }
    
    @RequestMapping("/getuservalue")
    public Student getUserValue(String username){
        Object result = redisService.getStudent(username);
        return (Student)result;
    }
}

我们输入http://localhost/putstudent?name=小明&&sex=男 然后再输入http://localhost/putstudent?name=小明

结果如下

我们输入http://localhost/putUser?username=Elvis&&password=123456 然后再输入http://localhost/putstudent?name=小明

结果如下


推荐阅读
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
author-avatar
宝一一0702
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有