SpringBoot+Redis学习笔记

目录1.Redis服务端环境搭建2.SpringDataRedis简介3.SpringDataRedis代码实现3.1.在pom.xml导入spring data redis的坐标3.2.在application.yml添加redis配置3.3.RedisTemplate实际应用4operation接口5.常用方法1.Redis服务端环境搭建 以docker...
摘要由CSDN通过智能技术生成

目录

1.Redis服务端环境搭建

2.SpringDataRedis简介

3.SpringDataRedis代码实现

3.1.在pom.xml导入spring data redis的坐标

3.2.在application.yml添加redis配置

3.3.RedisTemplate实际应用

4operation接口

5.常用方法


1.Redis服务端环境搭建

docker 的形式搭建 Redis 服务
docker run -di --name=tensquare_redis -p 6379:6379 redis

2.SpringDataRedis简介

Spring-data-redis spring 大家族的一部分,提供了在 srping 应用中通过简单的配置访问 redis服务,对reids 底层开发包 (Jedis,JRedis,andRJC) 进行了高度封装, RedisTemplate 提供了 redis各种操作。
 

3.SpringDataRedis代码实现

3.1.在pom.xml导入spring data redis的坐标

 <!-- 此处引入redis-->
		   <dependency>
			  <groupId>org.springframework.boot</groupId>
			  <artifactId>spring-boot-starter-data-redis</artifactId>
		  </dependency>

3.2.在application.yml添加redis配置

server: 
  port: 9004
spring: 
  application:  
    name: tensquare-article #指定服务名
  redis:
    host: 此处填写你的redis——ip地址
    port: 6379
    database: 2

3.3.RedisTemplate实际应用

    /**
     * 根据ID查询实体
     *
     * @param id
     * @return
     */
    public Article findById(String id) {
        //1.先redis查询有没有文章数据
        /*BoundValueOperations bound = redisTemplate.boundValueOps("a");
        bound.set("value1");
        bound.set("value2");*/

        Article article = (Article) redisTemplate.opsForValue().get("article_" + id);

        //2.1.如果没有,查询数据库,获取文章,把文章存入redis
        if (article == null) {
            article = articleDao.findById(id).get();

            //把文章存入redis
            // redisTemplate.opsForValue().set("article_"+id,article);

            //设置过期时长
            redisTemplate.opsForValue().set("article_" + id, article, 20, TimeUnit.SECONDS);
        }

        //2.2.如果有,直接返回redis数据
        return article;
    }

4operation接口

关于spring-redis

1. 连接池自动管理,提供了一个高度封装的“RedisTemplate”类

2. 针对jedis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口

operation接口

ValueOperations:简单K-V操作
SetOperations:set类型数据操作
ZSetOperations:zset类型数据操作
HashOperations:针对map类型的数据操作
ListOperations:针对list类型的数据操作

3. 提供了对key的“bound”(绑定)便捷化操作API,可以通过bound封装指定的key,然后进行一系列的操作而无须“显式”的再次指定Key,即BoundKeyOperations: BoundValueOperations BoundSetOperations BoundListOperations BoundSetOperations BoundHashOperations

 

4. 将事务操作封装,有容器控制。

5. 针对数据的“序列化/反序列化”,提供了多种可选择策略(RedisSerializer)

 

5.常用方法

String类型

        /*stirng类型*/
//        有则取出key值所对应的值
        redisTemplate.opsForValue().get(key);
//        设置当前的key以及value值
        redisTemplate.opsForValue().set(key, value);
//       设置当前的key以及value值并且设置过期时间
        redisTemplate.opsForValue().set(key, value, timeout, unit);
//        返回key中字符串的子字符
        redisTemplate.opsForValue().get(key, start, end);
//        将旧的key设置为value,并且返回旧的key
        redisTemplate.opsForValue().getAndSet(key, value);
//      将值 value 关联到 key,并将 key 的过期时间设为 timeout
        redisTemplate.opsForValue().set(key, value, timeout, unit);

//        删除单个key值
        redisTemplate.delete(key);
//        设置过期时间
        redisTemplate.expire(key, timeout, unit);
        redisTemplate.expireAt(key, date);
//        修改redis中key的名称
        redisTemplate.rename(oldKey, newKey);
//          返回传入key所存储的值的类型
        redisTemplate.type(key);
//        如果旧值存在时,将旧值改为新值
        redisTemplate.renameIfAbsent(oldKey, newKey);
//        从redis中随机取出一个key
        redisTemplate.randomKey();
//      返回当前key所对应的剩余过期时间
        redisTemplate.getExpire(key);
//        返回剩余过期时间并且指定时间单位
        redisTemplate.getExpire(key, unit);
//        将key持久化保存
        redisTemplate.persist(key);
//        将当前数据库的key移动到指定redis中数据库当中
        redisTemplate.move(key, dbIndex);

 

其他方法懒得写,参考链接

https://blog.csdn.net/sinat_22797429/article/details/89196933

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值