Spring Boot 整合——RedisTemplate使用基础

spring-boot-starter-data-redis

spring-boot-starter-data-redis是Spring对redis一系列操作进行的封装。它简化了很多redis的操作,
让开发的精力更多的投入在业务上面。

依赖的引入

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
            <version>2.6.2</version>
        </dependency>
    </dependencies>

参数配置

spring:
  application:
    name: redis
  redis:
    database: 0
    host: 127.0.0.1
    jedis:
      pool:
        #最大连接数据库连接数,设 0 为没有限制
        max-active: 8
        #最大等待连接中的数量,设 0 为没有限制
        max-idle: 8
        #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
        max-wait: -1ms
        #最小等待连接中的数量,设 0 为没有限制
        min-idle: 0
    lettuce:
      pool:
        max-active: 8
        max-idle: 8
        max-wait: -1ms
        min-idle: 0
      shutdown-timeout: 1000ms
    password: 你的密码
    port: 6379

server:
  port: 8000

redis的操作

spring-boot-starter-data-redis提供了两个操作Redis的工具,StringRedisTemplate
RedisTemplate两者的区别主要有下面

  1. StringRedisTemplate是RedisTemplate的子类
  2. 两者使用了不同的序列化类,RedisTemplate使用的是JdkSerializationRedisSerializer,StringRedisTemplate使用的是StringRedisSerializer。
  3. StringRedisTemplate更加专注于字符串的操作,而RedisTemplate提供了更多的数据类型的操作。
  4. RedisTemplate将数据保存到Redis中的时候会将值和键都序列化成字节数组进行保存。

RedisTemplate支持的数据类型

因为StringRedisTemplate是继承于RedisTemplate的所以,目前主要介绍StringRedisTemplate

操作字符串

redisTemplate.opsForValue();

操作hash

redisTemplate.opsForHash();

操作list

redisTemplate.opsForList();

操作set

redisTemplate.opsForSet();

操作ZSet(有序set)

redisTemplate.opsForZSet();

操作Geo(地图信息)

redisTemplate.opsForGeo();

操作HyperLogLog(HyperLogLog算法)

redisTemplate.opsForHyperLogLog()

基础操作

公共方法
设置过期时间

redisTemplate提供了expire来设置某个key的过期时间

    @Override
    public void setExpire(String key, long timeout, TimeUnit unit) {
   
   
        //设置超时时间10秒 第三个参数控制时间单位,详情查看TimeUnit
        redisTemplate.expire(key,timeout,unit);
    }
删除某个key的内容

redisTemplate提供了delete来删除某个key

 /**
     * 删除某个Key
     * @param key
     * @param timeout
     * @param unit
     */
    @Override
    public void remove(String key, long timeout, TimeUnit unit) {
   
   
        //设置超时时间10秒 第三个参数控制时间单位,详情查看TimeUnit
        redisTemplate.delete(key);
    }
对字符串的操作

对字符串的操作应该算是Redis最基础的功能了

设置和取出字符串内容

    @Override
    public void setData(String key,String value) {
   
   
        stringRedisTemplate.opsForValue().set(key,value);
    }

    @Override
    public String getData(String key) {
   
   
        return stringRedisTemplate.opsForValue().get(key);
    }
对List的操作

根据源码可以看到从redis中取出的的确是list但是Spring封装了一些模仿Deque的方法,实现了双端操作

    /**
     * 操作list的操作
     * @param key
     * @param value
     * @param location
     */
    @Override
    public void setListData(String key,String value,ListLocation location)<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大·风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值