redisTemplate使用一

转自  https://blog.csdn.net/lanfeng_lan/article/details/121152461

 

添加依赖

<!--redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <!--<version>2.1.4.RELEASE</version>-->
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>
        <!-- fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.68</version>
        </dependency>

序列化方式设置

@Configuration
public class RedisConfig {

    /**
     * 设置Redis序列化方式,默认使用的JDKSerializer的序列化方式,效率低,这里我们使用 FastJsonRedisSerializer
     * @param redisConnectionFactory
     * @return
     */
    @Bean
    public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory redisConnectionFactory) {
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        // key序列化
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        // value序列化
        redisTemplate.setValueSerializer(new FastJsonRedisSerializer<>(Object.class));
        // Hash key序列化
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
        // Hash value序列化
        redisTemplate.setHashValueSerializer(new StringRedisSerializer());
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        return redisTemplate;
    }
}

 

1:Redis的String数据结构

redisTemplate.opsForValue().set(key, value)            //设置当前的key以及value过期时间
redisTemplate.opsForValue().set(key, value, timeout, unit)  //设置当前的key以及value值并且设置过期时间

redisTemplate.opsForValue().getAndSet(key, value);      //获取原来的key对应的value,并赋予新值

redisTemplate.opsForValue().append(key, value);       //在原来value后面拼接新值
redisTemplate.opsForValue().size(key); //获取value的长度
redisTemplate.opsForValue().setIfAbsent(key, value)     //
重新设置key对应的值,如果存在返回false,否则返回true
Map valueMap = new HashMap(); 
valueMap.put(
"valueMap1","map1");
valueMap.put(
"valueMap2","map2");
valueMap.put(
"valueMap3","map3");
redisTemplate.opsForValue().multiSet(valueMap);     //
设置map集合到redis
Map valueMap = new HashMap(); 
valueMap.put(
"valueMap1","map1");
valueMap.put(
"valueMap2","map2");
valueMap.put(
"valueMap3","map3");
redisTemplate.opsForValue().multiSetIfAbsent(valueMap); //
如果对应的map集合名称不存在,则添加否则不做修改
redisTemplate.opsForValue().increment(key, increment);//通过increment(K key, long delta)方法以增量方式存储long值(正值则自增,负值则自减)

redisTemplate.opsForValue().multiGet(keys);    //批量获取值

redisTemplate.type(key);               //返回传入key所存储的值的类型

redisTemplate.rename(oldKey, newKey); //修改redis中key的名称

redisTemplate.opsForValue().multiGet(keys); //如果旧值key存在时,将旧值改为新值

redisTemplate.type(key);           //
返回传入key所存储的值的类型
redisTemplate.rename(oldKey, newKey);     //修改redis中key的名称

redisTemplate.renameIfAbsent(oldKey, newKey);//如果旧值key存在时,将旧值改为新值
redisTemplate.hasKey(key);                    //判断是否有key所对应的值,有则返回true,没有则返回false

redisTemplate.delete(key) //删除key

redisTemplate.delete(keys)                  //批量删除key
redisTemplate.expire(key, timeout, unit);  //设置过期时间
redisTemplate.expireAt(key, date);     //返回当前key所对应的剩余过期时间
redisTemplate.getExpire(key);         //返回剩余过期时间并且指定时间单位
redisTemplate.getExpire(key, unit);    //查找匹配的key值,返回一个Set集合类型
redisTemplate.keys(pattern);            //返回剩余过期时间并且指定时间单位
redisTemplate.persist(key);          //将key持久化保存
redisTemplate.move(key, dbIndex);   //将当前数据库的key移动到指定redis中数据库当中

 

posted @ 2022-06-10 17:47  慧剑仙  阅读(216)  评论(0编辑  收藏  举报