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

结果如下


推荐阅读
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文探讨了在 OpenStack 环境中使用虚拟机部署 Ceph 集群后,外部服务器通过浮动 IP 无法访问该集群的问题,并提供了详细的解决方案。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
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社区 版权所有