当前位置: 首页 > article >正文

第09讲:Spring Data Redis(RedisTemplate)

一、什么是SpringDataRedis

Spring-data-redis是spring大家族的一部分,提供了在srping应用中通过简单的配置访问redis服务,对reids底层开发包(Jedis, JRedis, and RJC)进行了高度封装,RedisTemplate提供了redis各种操作、异常处理及序列化,支持发布订阅,并对spring 3.1 cache进行了实现。

spring-data-redis针对jedis提供了如下功能:

  • 连接池自动管理,提供了一个高度封装的“RedisTemplate”类
  • 针对jedis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口
  • ValueOperations:简单K-V操作
  • SetOperations:set类型数据操作
  • ZSetOperations:zset类型数据操作
  • HashOperations:针对map类型的数据操作
  • ListOperations:针对list类型的数据操作

二、API

在pom.xml中引入依赖

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

application.yml

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

2.1、RedisTemplate的直接方法

//删除单个key
public void delete(String key){
    redisTemplate.delete(key);
}

//删除多个key
public void deleteKey (String ...keys){
    redisTemplate.delete(keys);
}

//指定key的失效时间
public void expire(String key,long time){
    redisTemplate.expire(key,time,TimeUnit.MINUTES);
}

//根据key获取过期时间
public long getExpire(String key){
    Long expire = redisTemplate.getExpire(key);
    return expire;
}

//判断key是否存在
public boolean hasKey(String key){
    return redisTemplate.hasKey(key);
}

2.2、操作String

2.2.1、添加缓存

	@Test
    public void t1(){
        //方式1:通过redisTemplate设置值
        redisTemplate.boundValueOps("StringKey").set("StringValue");
        //同时设置过期时间
        redisTemplate.boundValueOps("StringKey").set("StringValue",1, TimeUnit.MINUTES);

        //方式2:通过BoundValueOperations设置值
        BoundValueOperations stringKey = redisTemplate.boundValueOps("StringKey");
        stringKey.set("StringVaule");
        //同时设置过期时间
        stringKey.set("StringValue",1, TimeUnit.MINUTES);

        //方式3:通过ValueOperations设置值
        ValueOperations ops = redisTemplate.opsForValue();
        ops.set("StringKey", "StringVaule");
        //同时设置过期时间
        ops.set("StringValue","StringVaule",1, TimeUnit.MINUTES);

        log.info("保存成功");
    }

2.2.2、获取缓存值

	@Test
    public void t2(){
        //方式1:通过redisTemplate设置值
        String str1 = (String) redisTemplate.boundValueOps("StringKey").get();

        log.info(str1);

        //方式2:通过BoundValueOperations获取值
        BoundValueOperations stringKey = redisTemplate.boundValueOps("StringKey");
        String str2 = (String) stringKey.get();

        //方式3:通过ValueOperations获取值
        ValueOperations ops = redisTemplate.opsForValue();
        String str3 = (String) ops.get("StringKey");
    }

2.2.3、设置过期时间

	@Test
    public void t3(){
        //方式1
        redisTemplate.boundValueOps("StringKey").expire(1,TimeUnit.MINUTES);
        //方式2
        redisTemplate.expire("StringKey",1,TimeUnit.MINUTES);
    }

http://www.kler.cn/a/6686.html

相关文章:

  • Nmap之企业漏洞扫描(Enterprise Vulnerability Scanning for Nmap)
  • 精选算法合集
  • 将Docker运行中的容器保存为镜像并导出导入
  • 贪心算法(题1)区间选点
  • 进阶——十六届蓝桥杯嵌入式熟练度练习(按键+LCD)
  • 软件授权管理中的软件激活向导示例
  • pdf怎么转换成jpg图片?快来收藏这两种方法
  • 【图论刷题-6】力扣 797. 所有可能的路径
  • 【K3s】第31篇 详解 TDengine 集群扩容、缩容、清理
  • 工厂方法示例
  • CDH6.3.2大数据集群生产环境安装(五)之httpd和clouderManagerServer、agent组件安装
  • Java基础之Set
  • 2023蓝牙耳机哪个品牌的质量好?耐用的蓝牙耳机推荐
  • 《只有全力奔跑过才知道的事 》大迫杰
  • 【Linux】线程概念
  • 变量的作用域练习题-课后程序(JavaScript前端开发案例教程-黑马程序员编著-第4章-课后作业)
  • Java判断请求是来自手机端还是PC端
  • select @@basedir;
  • pytorch中torch.cat() 和paddle中的paddle.concat()函数用法
  • CAD命令行怎么恢复到初始状态?CAD命令行窗口恢复步骤
  • IDEA 2023.1 正式发布,新特性简介
  • 【MySQL高级篇】 第10章_索引优化与查询优化
  • 【面试】业务中台是什么?
  • 3C认证是什么意思
  • 一刷代码随想录总结
  • 【ssl认证、证书】Wireshark抓包分析