学习笔记039——SpringBoot整合Redis

文章目录

1、Redis 基本操作

Redis 默认有 16 个数据库,使用的是第 0 个,切换数据库

复制代码
select 0

添加数据/修改数据

复制代码
set key value

查询数据

复制代码
get key

批量添加

复制代码
mset k1 v1 k2 v2...

批量查询

复制代码
mget k1 k2 

删除数据

复制代码
del key

查询所有的 key

复制代码
keys *

清除当前数据库

复制代码
flushdb

清除所有数据库

复制代码
flushall

查看 key 是否存在

复制代码
exists key

设置有效期

复制代码
expire key 10

查看有效期

复制代码
ttl key

2、Redis 数据类型

String

追加字符串

复制代码
append key value

查看字符串长度

复制代码
strlen key

自增

复制代码
incr key

递减

复制代码
decr key

指定递增长度

复制代码
incrby k v

指定递减长度

复制代码
decrby k v

字符串截取

复制代码
getrange k start end

修改局部字段

复制代码
setrange k start v

List

从左侧添加

复制代码
lpush k v...

从右侧添加

复制代码
rpush k v...

取值

复制代码
lrange k start end

删除,左侧移除

复制代码
lpop k

右侧移除

复制代码
rpop k

通过下标获取值

复制代码
lindex k index

删除集合中指定的值,count 是删除的个数

复制代码
lrem k count v

通过下标修改集合中的值

复制代码
lset k index v

获取长度

复制代码
llen k

截取list

复制代码
ltrim k start end

查看集合是否存在

复制代码
exists k

Set

添加数据

复制代码
sadd k v

查询数据

复制代码
smembers k

判断集合中是否存在某个值

复制代码
sismember k v

获取集合长度

复制代码
scard k

删除元素

复制代码
srem k v1 v2...

随机取值

复制代码
srandmember k

Hash

存值

复制代码
hset hash k1 v1 k2 v2

取值

复制代码
hget hash k1

存多个值

复制代码
hmset hash k1 a k2 b k3 c

取多个值

复制代码
hmget hash k1 k2 k3

取所有值

复制代码
hgetall hash

删除数据

复制代码
hdel hash k1 k2

获取长度

复制代码
hlen k

判断集合中是否存在某个值

复制代码
hexists hahs k

获取集合中所有 key

复制代码
hkeys hash

获取集合中所有 value

复制代码
hvals hash

Zset

添加数据

复制代码
zadd set index v

查询数据

复制代码
zrange set 0 -1

升序查询

复制代码
zrangebyscore score -inf +inf withscores

降序查询

复制代码
zrevrange score 0 -1 withscores

删除数据

复制代码
zrem score jack

3、Spring Boot 整合 Redis

Spring Data Redis

xml 复制代码
<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>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

<!-- Swagger -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>
yaml 复制代码
spring:
  redis:
    database: 0
    host: 192.168.248.138
    port: 6379
java 复制代码
package com.southwind.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

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

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student implements Serializable {
    private Integer id;
    private String name;
    private Double score;
    private Date birthday;
}
java 复制代码
package com.southwind.controller;

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 StudentController {

    @Autowired
    private RedisTemplate redisTemplate;

    @PostMapping("/set")
    public void set(@RequestBody Student student){
        this.redisTemplate.opsForValue().set("stu", student);
    }

    @GetMapping("/get/{key}")
    public Student get(@PathVariable("key") String key){
        return (Student) this.redisTemplate.opsForValue().get(key);
    }

    @PutMapping("/put")
    public void update(@RequestBody Student student){
        this.redisTemplate.opsForValue().set("stu", student);
    }

    @DeleteMapping("/delete/{key}")
    public Boolean delete(@PathVariable("key") String key){
        this.redisTemplate.delete(key);
        return this.redisTemplate.hasKey(key);
    }
}
java 复制代码
package com.southwind.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.southwind"))
                .build().apiInfo(new ApiInfoBuilder()
                        .title("Redis测试")
                        .description("测试")
                        .version("V1.0")
                        .build());
    }
}

字符串

java 复制代码
@PostMapping("/string")
public String string(){
    String str = "Hello World";
    this.redisTemplate.opsForValue().set("str", str);
    return (String) this.redisTemplate.opsForValue().get("str");
}

List

java 复制代码
@PostMapping("/list")
public void list(){
    ListOperations<String,String> list = redisTemplate.opsForList();
    list.leftPush("list", "Hello");
    list.leftPush("list", "World");
    list.leftPush("list","Java");
    list.rightPush("list", "1");
    list.rightPush("list", "2");
    list.rightPush("list", "3");
}

Set

java 复制代码
@PostMapping("/setadd")
public void setadd(){
    SetOperations<String,String> set = this.redisTemplate.opsForSet();
    set.add("set", "Hello");
    set.add("set", "World");
    set.add("set", "Java");
}

Zset

java 复制代码
@PostMapping("/zset")
public void zset(){
    ZSetOperations<String,String> set = this.redisTemplate.opsForZSet();
    set.add("zset", "Hello",1);
    set.add("zset", "World",2);
    set.add("zset", "Java",3);
}

Hash

java 复制代码
@PostMapping("/hash")
public void hash(){
    HashOperations<String,String,String> hash = this.redisTemplate.opsForHash();
    hash.put("hash", "id", "1");
    hash.put("hash", "name", "tom");
    hash.put("hash", "age","22" );
}
相关推荐
linmengmeng_131428 分钟前
【总结】MyBatis-Plus批量插入与清表的正确姿势
java·spring boot·mysql·mybatis
高级程序源28 分钟前
django大学生创新创业项目管理系统94923-计算机课程设计、毕业设计
javascript·vue.js·spring boot·后端·python·django·课程设计
暮雨哀尘2 小时前
JAVA基础练习(四):SpringBoot 实现简易登录功能
java·spring boot·eclipse·maven
zhoupenghui1683 小时前
Redis 集群的安装配置与服务交互
redis·cluster·redis集群
VXbishe4 小时前
【课程设计】基于SpringBoot的乡村政务服务系统的设计与实现-计算机毕设77011
javascript·vue.js·spring boot·python·php·课程设计·政务
Wang's Blog6 小时前
Java 接入Redis: Redis下载与源码编译安装
java·服务器·redis
vx_BS813306 小时前
【项目编号:project51381】Spring Boot 婚纱摄影管理系统:套餐预约、在线咨询、支付与客片展示的一站式业务实现
java·spring boot·eclipse·tomcat·mybatis
雪芽蓝域zzs6 小时前
第11节:分页查询(MyBatis 实现分页,后端最常用功能)
spring boot
计算机毕设定制辅导-无忧学长6 小时前
《基于SpringBoot的中学教师数字胜任力测评网站的设计与实现》
java·vue.js·spring boot·mysql·中学教师数字胜任力测评网站