Redis 2 :springboot 整合 redis

项目结构

依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>
    <dependencies>
        <!-- 集成commons工具类 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <!-- 集成lombok 框架 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!-- fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.30</version>
        </dependency>
        <!-- SpringBoot-整合Web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!--mysql数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>

    </dependencies>
    <!-- 管理依赖 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.M7</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

配置文件:application.yml

spring:
  redis:
    host: 192.168.144.178
    password: 123456
    port: 6379
    database: 1
  #数据库连接配置
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/user?characterEncoding=utf-8&useSSL=false
    username: root
    password: root


UserEntity:
package com.demo.entity;

import lombok.Data;

@Data
public class UserEntity {

    private Long userId;

    private String userName;
}

 redis存json中======================开始

RedisUtils:
package com.demo.utils;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;

@Component
public class RedisUtils {

    /**
     * 获取redis的模板
     */
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    public void setString(String key, String value){
        setString(key, value, null);
    }

    public void setString(String key, String value, Long timeout){
        stringRedisTemplate.opsForValue().set(key, value);
        if(timeout != null){
            stringRedisTemplate.expire(key, timeout, TimeUnit.SECONDS);
        }
    }

    public String getString(String key){
        return stringRedisTemplate.opsForValue().get(key);
    }


}

RedisController:

package com.demo.controller;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.demo.entity.UserEntity;
import com.demo.utils.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RedisController {

    @Autowired
    private RedisUtils redisUtils;

    @RequestMapping("/addUser")
    public String addUser(UserEntity userEntity){
        // 将对象转成json
        String json = JSON.toJSONString(userEntity);
        redisUtils.setString("userEntity", json);
        return "存储成功";
    }

    @RequestMapping("/getUser")
    public UserEntity getUser(String key){
        String json = redisUtils.getString(key);
        // 将 json 转成对象
        UserEntity userEntity = JSONObject.parseObject(json, UserEntity.class);
        return userEntity;
    }
}

 redis存json中======================结束

App:

package com.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class App {

    public static void main(String[] args) {
        SpringApplication.run(App.class);
    }
}

 

 启动程序

输入:127.0.0.1:8080/addUser?userId=123&userName=美丽

127.0.0.1:8080/getUser?key=userEntity

用 redis 客户端也可以查看的到刚才存入redis 的对象

 redis存序列化中======================开始

RedisTemplateUtils:
package com.demo.utils;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.concurrent.TimeUnit;

@Component
public class RedisTemplateUtils {

    @Resource
    private RedisTemplate<String, Object> redisTemplate;

    public void setObject(String key, Object value){
        setObject(key, value, null);
    }

    public void setObject(String key, Object value, Long timeout){
        redisTemplate.opsForValue().set(key, value);
        if(timeout != null){
            redisTemplate.expire(key, timeout, TimeUnit.SECONDS);
        }
    }

    public Object getObject(String key){
        return redisTemplate.opsForValue().get(key);
    }

}
RedisTemplateController:
package com.demo.controller;

import com.demo.entity.UserEntity;
import com.demo.utils.RedisTemplateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RedisTemplateController {

    @Autowired
    private RedisTemplateUtils redisTemplateUtils;

    @RequestMapping("/addUser2")
    public String addUser(UserEntity userEntity){
        redisTemplateUtils.setObject("userEntity", userEntity);
        return "存储成功";
    }

    @RequestMapping("/getUser2")
    public UserEntity getUser(String key){
        return (UserEntity) redisTemplateUtils.getObject(key);
    }
}

 启动程序

输入网址:

localhost:8080/addUser2?userId=111&userName=peng

localhost:8080/getUser2?key=userEntity

 序列化存储的话,存入的值就不方便查看了

 redis存序列化中======================结束

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值