ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

redisTemplate使用一

2022-06-10 18:03:32  阅读:188  来源: 互联网

标签:opsForValue 使用 value key valueMap 序列化 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中数据库当中


 

标签:opsForValue,使用,value,key,valueMap,序列化,redisTemplate
来源: https://www.cnblogs.com/czfblog-01/p/16356710.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有