SpringBoot之集成Redis NoSql数据库

简介: 本篇文章只是简单的介绍一下SpringBoot集成Redis的使用(不包括Redis集群的使用),算是一篇入门文章吧。下面我们进入正题。 前期准备 我们现在pom.xml中引入redis的配置: <dependency> <groupId>org.springframework.data</groupId&g

本篇文章只是简单的介绍一下SpringBoot集成Redis的使用(不包括Redis集群的使用),算是一篇入门文章吧。下面我们进入正题。

前期准备

我们现在pom.xml中引入redis的配置:
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>
简单的配置几个参数,参数的配置可以根据你的需求来进行配置,这里只是简单的介绍一下,所以我们只用最简单的配置就行了。
redis.serverName = 127.0.0.1:6379
#超时时间
redis.timeout = 8

获取配置信息

这里我们定义了一个类用来获取Redis的各项配置信息:
package com.zkn.learnspringboot.redis;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * Created by zkn on 2016/8/14.
 */
@ConfigurationProperties(prefix = "redis")
@Component
public class RedisArguments {

    /**
     * redis的服务地址
     */
    private String serverName;
    /**
     * 超时时间
     */
    private Integer timeout;

    public String getServerName() {
        return serverName;
    }

    public void setServerName(String serverName) {
        this.serverName = serverName;
    }

    public Integer getTimeout() {
        return timeout;
    }

    public void setTimeout(Integer timeout) {
        this.timeout = timeout;
    }
}

配置Redis实例

我们定义一个类用来获取Redis的实例:
package com.zkn.learnspringboot.redis;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * Created by zkn on 2016/8/14.
 */
@Component
public class RedisExampleBean {

    @Autowired
    private RedisArguments redisArguments;
    @Bean
    private JedisPool getJedisPoll(){

        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        String[] strServer = redisArguments.getServerName().split(":");
        return new JedisPool(jedisPoolConfig,strServer[0],Integer.parseInt(strServer[1]));
    }

}

Redis的基本工具类

接下来我们写一个类用来获取Reids的实例和释放Redis的连接。
package com.zkn.learnspringboot.redis;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

/**
 * Created by zkn on 2016/8/14.
 */
@Component
public class RedisBaseUtil {

    @Autowired
    private JedisPool jedisPool;

    public Jedis getJedis(){

        Jedis jedis = jedisPool.getResource();
        if(jedis == null)
            return null;
        return jedis;
    }

    public void releaseJedis(Jedis jedis){

        if(jedis == null)
            return;
        jedis.close();
    }

}
OK,接下来我们写一个简单的字符串的操作类:
package com.zkn.learnspringboot.redis;

import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;

/**
 * Created by zkn on 2016/8/15.
 */
@Component
public class RedisStringUtil extends RedisBaseUtil {

    public void putString(String key,String value){
        Jedis jedis = getJedis();
        try{
            if (jedis != null){
                jedis.set(key,value);
                jedis.expire(key,300);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            releaseJedis(jedis);
        }
    }

    public String getString(String key){
        Jedis jedis = getJedis();
        try{
            if (jedis != null){
                return jedis.get(key);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            releaseJedis(jedis);
        }
        return null;
    }
}

访问应用

接下来我们来写一个Controller类来测试一下我们刚才的成果吧。
package com.zkn.learnspringboot.controller;

import com.zkn.learnspringboot.redis.RedisStringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * Created by zkn on 2016/8/15.
 */
@Controller
@ResponseBody
public class RedisTestController {

    @Autowired
    private RedisStringUtil redisStringUtil;

    @RequestMapping("/putStringkey.do")
    public String putString(@RequestParam String key){
        redisStringUtil.putString(key,key);
        return "保存成功";
    }

    @RequestMapping("/getStringkey.do")
    public String getString(@RequestParam String key){

        return redisStringUtil.getString(key);
    }
}
首先我们来进行一个保存的操作:
http://localhost:8080/putStringkey.do?key=xiaoerwangsan
OK接下来我们来测试一下看看能不能取到刚才我们保存的数据:
http://localhost:8080/getStringkey.do?key=xiaoerwangsan
可以发现我们刚才放入的数据已经保存成功了。另外我们也可以通过命令开查看一下是否保存到Redis的库里。


本文只是简单的介绍一下SpringBoot和Redis结合的使用,仅供参考。


相关文章
|
9月前
|
存储 NoSQL Redis
阿里云高性能数据库Tair(兼容 Redis)收费价格,稳定可靠成本低
阿里云高性能云数据库Tair兼容Redis,提供Redis开源版和Tair企业版,支持多种存储介质与灵活扩展,适用于高并发场景。Tair具备亚毫秒级稳定延迟,保障业务连续性。价格方面,Redis开源版年费从72元起,Tair企业版年费从1224元起,具体费用根据配置不同有所变化。
|
存储 NoSQL 数据库
Redis 逻辑数据库与集群模式详解
Redis 是高性能内存键值数据库,广泛用于缓存与实时数据处理。本文深入解析 Redis 逻辑数据库与集群模式:逻辑数据库提供16个独立存储空间,适合小规模隔离;集群模式通过分布式架构支持高并发和大数据量,但仅支持 database 0。文章对比两者特性,讲解配置与实践注意事项,并探讨持久化及性能优化策略,助你根据需求选择最佳方案。
1105 5
|
8月前
|
人工智能 运维 NoSQL
云栖大会|AI浪潮下的NoSQL演进:下一代数据库的破局之道
AI浪潮下的NoSQL演进:下一代数据库的破局之道
|
12月前
|
存储 NoSQL 搜索推荐
NoSQL数据库分类概览
以上就是我们的NoSQL数据库奇幻之旅。每一种NoSQL数据库都有自己独特的魅力和专长,择选合适的数据库,就像在魔法世界中挑选最适合自己的魔杖,使你的数据管理变得更加高效和神奇。在当今数据驱动的时代,懂得这些数据库的秘密,就掌握了处理各种数据挑战的关键。
561 61
|
9月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1614 5
|
缓存 NoSQL Redis
Redis原理—2.单机数据库的实现
本文概述了Redis数据库的核心结构和操作机制。
Redis原理—2.单机数据库的实现
|
NoSQL Java Redis
Redis Pipeline介绍 ---- 提高操作Redis数据库的执行效率。
Redis Pipeline是提高Redis执行效率的重要技术,通过批量发送命令,显著减少了网络往返次数,提高了系统的吞吐量和性能。在实际应用中,合理使用Pipeline可以有效优化Redis的性能,特别是在需要批量操作的场景下。本文通过Python和Java的示例代码展示了如何实现和使用Redis Pipeline,为开发者提供了具体的操作指南。
648 16
|
消息中间件 缓存 NoSQL
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
JavaScript NoSQL Java
基于SpringBoot+Vue的班级综合测评管理系统设计与实现(系统源码+文档+数据库+部署等)
✌免费选题、功能需求设计、任务书、开题报告、中期检查、程序功能实现、论文辅导、论文降重、答辩PPT辅导、会议视频一对一讲解代码等✌