Spring Boot集成redis

文件配置 

# Redis服务器地址
spring.redis.host= localhost
# Redis服务器连接端口
spring.redis.port= 6379
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制) 默认 8
spring.redis.lettuce.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
spring.redis.lettuce.pool.max-wait=-1
#连接池中的最小空闲连接 默认 0
spring.redis.lettuce.pool.min-idle=0
#连接池中的最大空闲连接 默认 0
spring.redis.lettuce.pool.max-idle=8

实现的代码,对ResponseData,这个是自己封装好的返回数据格式,就不再展示。DriverService ,这个是查询数据库,你可以替换自己的数据库。

package com.example.test.redis.controller;

import com.example.test.driver.entity.DriverEntity;
import com.example.test.driver.service.DriverService;
import com.example.test.response.ResponseData;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.*;

@Api(tags="redis测试数据")
@RestController
@RequestMapping("/api/v1/redis")
public class RedisController {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @Autowired
    private RedisTemplate redisTemplate;

    @Autowired
    private DriverService driverService;

    @ApiOperation("数据查找")
    @GetMapping("/testString")
    public String testString(){
        stringRedisTemplate.opsForValue().set("user","花花");
        String name=stringRedisTemplate.opsForValue().get("user");
        return "the value is "+name;
    }


    @ApiOperation("数据查找findAll,对于String操作")
    @GetMapping("/findAll")
    public ResponseData findAll() throws JsonProcessingException {

        List<DriverEntity> driverEntityList = null;
        String str= (String) redisTemplate.opsForValue().get("findAll");
        String str1=null;
        if(str==null){
            ValueOperations<String, String> operations = redisTemplate.opsForValue();
            List<DriverEntity> driverList=driverService.list();
            ObjectMapper objectMapper=new ObjectMapper();
            str=objectMapper.writeValueAsString(driverList);
            operations.set("findAll", str);
        }else{
            str1= (String) redisTemplate.opsForValue().get("findAll");
            System.out.println(str1);
            ObjectMapper objectMapper=new ObjectMapper();
            driverEntityList=objectMapper.readValue(str1,List.class);
            System.out.println("数据"+driverEntityList.toString());
            redisTemplate.delete("findAll");
        }

        return ResponseData.success(driverEntityList);

    }


    @ApiOperation("对于list的操作")
    @GetMapping("/operationList")
    public ResponseData operationList(){
        ListOperations listOperations= redisTemplate.opsForList();
        String key="list"+11;
        Boolean flag=redisTemplate.hasKey(key);
        if(flag){
            //查询数据
            List l=listOperations.range(key,0,3);
            System.out.println(listOperations.range(key,0,2));
            //删除对应的key
            listOperations.getOperations().delete(key);
            //
            return ResponseData.success("数据已删除"+l.toString());
        }else{
            List list=new ArrayList();
            list.add("数据1");
            list.add("shu11");
            list.add("asas");
            return ResponseData.success(listOperations.leftPushAll(key,list));
        }

    }

    @ApiOperation("对于set的操作")
    @GetMapping("/operationSet")
    public ResponseData operationSet(){
        //Set可以设置《T,V》
        SetOperations setOperations=redisTemplate.opsForSet();
        String key="Set"+11;
        Boolean flag=redisTemplate.hasKey(key);
        if(flag){
            //查询数据
            Set s=setOperations.members(key);
            System.out.println(s.toString());
            //删除对于的key
            setOperations.getOperations().delete(key);
            return ResponseData.success("数据删除"+s);
        }else{
            setOperations.add(key,"111");
            setOperations.add(key,"222");
            setOperations.add(key,"333");
            return ResponseData.success("数据添加成功");
        }

    }

    @ApiOperation("对于ZSet的操作")
    @GetMapping("/operationZSet")
    public ResponseData operationZSet(){
        //Set可以设置《T,V》
        ZSetOperations zsetOperations=redisTemplate.opsForZSet();
        String key="ZSet"+11;
        Boolean flag=redisTemplate.hasKey(key);
        if(flag){
            //查询数据
            Set s=zsetOperations.range(key,0,3);
            System.out.println(s.toString());
            //删除对于的key
            zsetOperations.getOperations().delete(key);
            return ResponseData.success("数据删除"+s);
        }else{
            zsetOperations.add(key,"111",77);
            zsetOperations.add(key,"222",77);
            zsetOperations.add(key,"333",77);
            return ResponseData.success("数据添加成功");
        }

    }

    @ApiOperation("对于hashMap的操作")
    @GetMapping("/operationHashMap")
    public ResponseData operationHashMap(){
        HashOperations hashOperations=redisTemplate.opsForHash();
        String key="hashMap"+11;
        Boolean flag=redisTemplate.hasKey(key);
        if(flag){
            //查询数据
            System.out.println("get数据"+hashOperations.get(key,0));
            Map m=hashOperations.entries(key);
            System.out.println("entries数据为"+hashOperations.entries(key));
            //删除数据
            hashOperations.getOperations().delete(key);
            return ResponseData.success("entries数据为"+m.toString());
        }else{
            HashMap hashMap=new HashMap<String,String>();
            hashMap.put("1","数据为1");
            hashMap.put("2","数据为2");
            hashMap.put("3","数据为3");
            hashOperations.putAll(key,hashMap);
            return ResponseData.success();
        }
    }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值