springboot 之 redis简单实例

注:示例代码参考《springboot 实战》一书

1、已安装redis服务器

2、添加依赖

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

3、配置redis,使用默认配置即可

#数据库名称,默认db0
spring.redis.database=0
spring.redis.host=127.0.0.1
#spring.redis.password=
spring.redis.port=6379
spring.redis.pool.max-active=8
spring.redis.pool.min-idle=0
spring.redis.pool.max-idle=8
#spring.redis.pool.max-wait=-1
#spring.redis.sentinel.master=
#spring.redis.sentinel.nodes=
#spring.redis.timeout=

4、配置redis模板

package com.yu.rest_demo.config;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class RedisConfig {

    @Bean
    public RedisTemplate<Object,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
        RedisTemplate<Object,Object> redisTemplate=new RedisTemplate<Object,Object>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);

        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer=new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper om=new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(om);

        redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);//值的序列化采用Jackson2JsonRedisSerializer
        redisTemplate.setKeySerializer(new StringRedisSerializer());//键的序列化采用StringRedisSerializer

        redisTemplate.afterPropertiesSet();

        return redisTemplate;
    }
}

5、编写domain(或vo、pojo、po)

package com.yu.rest_demo.vo;

import java.io.Serializable;

public class RedisVo implements Serializable {

    private static final long serialVersionUID = -7489358750561796085L;

    private String name;
    private Integer age;
    private String type;

    public RedisVo(){
        super();
    }
    public RedisVo(String name, Integer age, String type) {
        super();
        this.name = name;
        this.age = age;
        this.type = type;
    }

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
}

6、编写dao(当然你也可以放到service里面去做)

package com.yu.rest_demo.dao;

import com.yu.rest_demo.vo.RedisVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Repository;

import javax.annotation.Resource;


@Repository
public class RedisDao {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    @Autowired
    private RedisTemplate<Object,Object> redisTemplate;

    @Resource(name = "stringRedisTemplate")
    ValueOperations<String,String> valOpsStr;

    @Resource(name = "redisTemplate")
    ValueOperations<Object,Object> valOps;

    public void stringRedisTemplateDemo(){
        valOpsStr.set("xx","yy");
    }
    public void save(RedisVo redisVo){
        valOps.set(redisVo.getName(),redisVo);
    }

    public String getString(){
        return valOpsStr.get("xx");
    }
    public RedisVo getRedisVo(){
        return (RedisVo)valOps.get("redis");
    }

}

7、编写controller

package com.yu.rest_demo.controller;

import com.yu.rest_demo.dao.RedisDao;
import com.yu.rest_demo.util.AjaxResponse;
import com.yu.rest_demo.vo.RedisVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RedisConreoller {

    @Autowired
    RedisDao redisDao;

    @RequestMapping("/redis/set")
    public AjaxResponse set(){
        AjaxResponse response = new AjaxResponse();
        RedisVo vo = new RedisVo("redis",1,"redis1");
        redisDao.save(vo);
        redisDao.stringRedisTemplateDemo();//放到缓存
        response.set("redisVo",vo);
        response.setResult(true);
        return response;
    }

    @RequestMapping("/redis/getStr")
    public String getStr(){
        return redisDao.getString();
    }

    @RequestMapping("/redis/getRedisVo")
    public RedisVo getRedisVo(){
        return redisDao.getRedisVo();
    }
}

8、在访问之前先开启redis, AjaxResponse是一个工具类,封装了返回前端的一些固定格式的东西,可以自己替换为别的

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单Spring Boot整合Redis的示例,你可以参考: 1. 添加Redis依赖 在 `pom.xml` 文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 2. 配置Redis连接信息 在 `application.properties` 文件中添加以下配置: ```properties # Redis服务器地址 spring.redis.host=127.0.0.1 # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空) spring.redis.password= # Redis连接超时时间(单位:毫秒) spring.redis.timeout=3000 # Redis连接池最大连接数(使用负数表示没有限制) spring.redis.jedis.pool.max-active=8 # Redis连接池最大阻塞等待时间(单位:毫秒,使用负数表示没有限制) spring.redis.jedis.pool.max-wait=-1 # Redis连接池最大空闲连接数 spring.redis.jedis.pool.max-idle=8 # Redis连接池最小空闲连接数 spring.redis.jedis.pool.min-idle=0 ``` 3. 创建RedisTemplate Bean 在Spring Boot中创建RedisTemplate Bean是很简单的,只需要添加以下代码: ```java @Configuration public class RedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(factory); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); return redisTemplate; } } ``` 4. 使用RedisTemplate进行数据操作 通过上面的配置,我们已经可以使用RedisTemplate进行数据操作了。下面是一些简单的使用示例: ```java @Autowired private RedisTemplate<String, Object> redisTemplate; public void set(String key, Object value) { redisTemplate.opsForValue().set(key, value); } public Object get(String key) { return redisTemplate.opsForValue().get(key); } public void delete(String key) { redisTemplate.delete(key); } ``` 以上就是Spring Boot整合Redis简单示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值