热门标签 | 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=小明

结果如下


推荐阅读
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 本文详细介绍了如何在CentOS 7操作系统上安装和配置Grafana,包括必要的依赖项安装、插件管理以及服务启动等步骤。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 本文详细介绍了Python编程语言的学习路径,涵盖基础语法、常用组件、开发工具、数据库管理、Web服务开发、大数据分析、人工智能、爬虫开发及办公自动化等多个方向。通过系统化的学习计划,帮助初学者快速掌握Python的核心技能。 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 选择适合生产环境的Docker存储驱动
    本文旨在探讨如何在生产环境中选择合适的Docker存储驱动,并详细介绍不同Linux发行版下的配置方法。通过参考官方文档和兼容性矩阵,提供实用的操作指南。 ... [详细]
  • 本文详细探讨了如何在Docker环境中实现单机部署Redis集群的方法,提供了详细的步骤和配置示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • CentOS系统安装与配置常见问题及解决方案
    本文详细介绍了在CentOS系统安装过程中遇到的常见问题及其解决方案,包括Vi编辑器的操作、图形界面的安装、网络连接故障排除等。通过本文,读者可以更好地理解和解决这些常见问题。 ... [详细]
  • 随着Redis功能的不断增强和稳定性提升,其应用范围日益广泛,成为软件开发人员不可或缺的技能之一。本文将深入探讨Redis集群的部署与优化,包括主从备份机制、哨兵模式以及集群功能,帮助读者全面理解并掌握Redis集群的应用。 ... [详细]
  • 本文详细介绍了 org.apache.commons.io.IOCase 类中的 checkCompareTo() 方法,通过多个代码示例展示其在不同场景下的使用方法。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 本文介绍了如何在多线程环境中实现异步任务的事务控制,确保任务执行的一致性和可靠性。通过使用计数器和异常标记字段,系统能够准确判断所有异步线程的执行结果,并根据结果决定是否回滚或提交事务。 ... [详细]
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社区 版权所有