随笔 - 134,  文章 - 0,  评论 - 0,  阅读 - 21322

Springboot整合redis

spring Data Redis 操作Redis

1.pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>springbootRedis</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.2.4.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
<!--        整合redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
<!--        客户端-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
</project>

2.创建实体类:

要存储对象必须实现序列化接口

package com.southwind.entity;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;

@Data
public class Student implements Serializable {
    private Integer id;
    private String name;
    private Double score;
    private Date birthday;
}

3.创建控制器:

private RedisTemplate redisTemplate;

package com.southwind.handler;

import com.southwind.entity.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;

@RestController
public class studentHandler {
    @Autowired
    private RedisTemplate redisTemplate;
    @PostMapping("/set")
    public void set(@RequestBody Student student){
        redisTemplate.opsForValue().set("student",student);
    }
    @GetMapping("/get/{key}")
    public Student get(@PathVariable("key") String key){
        return (Student) redisTemplate.opsForValue().get(key);
    }
    @DeleteMapping("/delete/{key}")
    public boolean delete(@PathVariable("key")String key){
        redisTemplate.delete(key);
        return redisTemplate.hasKey(key);
    }
}

4.配置文件:

spring:
  redis:
    database: 0
    host: localhost
    port: 6379

5.启动类:

package com.southwind;

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

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

Redis的五种数据类型

  • 字符串:
//    字符串
    @GetMapping("/string")
    public String addString(String s){
        redisTemplate.opsForValue().set("str","hellow");
        String str=(String) redisTemplate.opsForValue().get("str");
        return str;
    }
  • list列表:
//    列表
    @GetMapping("/list")
    public List<String> addList(){
        ListOperations<String,String> listOperations = redisTemplate.opsForList();
//        key值是一样的因为是集合push pop
        listOperations.leftPush("list","hello");
        listOperations.leftPush("list","hello");
        listOperations.leftPush("list","hello");
        listOperations.leftPush("list","hello");
//        取rangge("key",开始的下标,结束的下标)
        List<String> list=listOperations.range("list",1,2);
        return list;
    }
  • set集合
//    set集合
    @GetMapping("/set")
    public Set<String> addSet(){
        SetOperations setOperations =redisTemplate.opsForSet();
//        set集合不能重复
        setOperations.add("set","hello");
        setOperations.add("set","hello");
        setOperations.add("set","b");
        setOperations.add("set","b");
        Set<String> set =setOperations.members("set");
        return set;
    }
  • 有序集合
//有序集合 zset
    @GetMapping("/zset")
    public Set<String> addZset(){
        ZSetOperations zSetOperations = redisTemplate.opsForZSet();
        zSetOperations.add("hello","a",1);
        zSetOperations.add("hello","a",2);
        zSetOperations.add("hello","a",3);
        Set<String> set =zSetOperations.range("set",0,3);
        return set;
    }
  • 哈希

HashMap需要一个key和value

HashOperations key hashkey value

key是每一组数据的ID,hashkey和value是一组完整的HashMap数据,通过key来区分不同的HashMap

HashMap hashMap1 =new HashMap();
hashMap1.put(key1,value1);
HashMap hashMap2 =new HashMap();
hashMap1.put(key2,value3);
HashMap hashMap3 =new HashMap();
hashMap1.put(key3,value3);
HashOperations<String,String> hashOperation =redisTemplate.opsForHash();
hashOperation.put(hashMap1,key1,value1);
hashOperation.put(hashMap2,key1,value1);
hashOperation.put(hashMap3,key1,value1);
//    哈希
    @GetMapping("/hash")
    public void hashMap(){
        HashOperations<String,String,String> hashOperations =redisTemplate.opsForHash();
        hashOperations.put("key","hashkey","hello");
        hashOperations.get("key","hashkey");
    }

posted on   Steam残酷  阅读(105)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示