• RedisTemplate使用


    RedisTemplate中定义了对5种数据结构操作

    redisTemplate.opsForValue();//操作字符串
    redisTemplate.opsForHash();//操作hash
    redisTemplate.opsForList();//操作list
    redisTemplate.opsForSet();//操作set
    redisTemplate.opsForZSet();//操作有序set

    StringRedisTemplate与RedisTemplate

      StringRedisTemplate继承RedisTemplate,StringRedisTemplate就相当于RedisTemplate<String, String>的实现

    RedisTemplate配置:

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)
    {
            Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class);
            ObjectMapper om = new ObjectMapper();
            om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
            om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
            jackson2JsonRedisSerializer.setObjectMapper(om);
            RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
            template.setConnectionFactory(redisConnectionFactory);
            template.setKeySerializer(jackson2JsonRedisSerializer);
            template.setValueSerializer(jackson2JsonRedisSerializer);
            template.setHashKeySerializer(jackson2JsonRedisSerializer);
            template.setHashValueSerializer(jackson2JsonRedisSerializer);
            template.afterPropertiesSet();
            return template;
    }

      如果使用RedisTemplate需要更改序列化方式

    RedisSerializer<String> stringSerializer = new StringRedisSerializer();
            template.setKeySerializer(stringSerializer );
            template.setValueSerializer(stringSerializer );
            template.setHashKeySerializer(stringSerializer );
            template.setHashValueSerializer(stringSerializer );

    ValueOperations可以对String数据结构进行操作

    • set void set(K key, V value);
    使用:redisTemplate.opsForValue().set("name","tom");
    结果:redisTemplate.opsForValue().get("name")  输出结果为tom
    • set void set(K key, V value, long timeout, TimeUnit unit);
    使用:redisTemplate.opsForValue().set("name","tom",10, TimeUnit.SECONDS);
    结果:redisTemplate.opsForValue().get("name")由于设置的是10秒失效,十秒之内查询有结果,十秒之后返回为null
    • set void set(K key, V value, long offset);
      该方法是用 value 参数覆写(overwrite)给定 key 所储存的字符串值,从偏移量 offset 开始
    使用:template.opsForValue().set("key","hello world");
            template.opsForValue().set("key","redis", 6);
            System.out.println("***************"+template.opsForValue().get("key"));
    结果:***************hello redis

    参考:https://www.jianshu.com/p/7bf5dc61ca06




  • 相关阅读:
    GTK+ 3.6.2 发布,小的 bug 修复版本
    RunJS 新增 Echo Ajax 测试功能
    Mozilla 发布 Popcorn Maker,在线创作视频
    Sina微博OAuth2框架解密
    Mina状态机State Machine
    Mozilla 发布 Shumway —— 纯JS的SWF解析器
    Code Browser 4.5 发布,代码浏览器
    ROSA 2012 "Enterprise Linux Server" 发布
    ltrace 0.7.0 发布,程序调试工具
    Artifactory 2.6.5 发布,Maven 扩展工具
  • 原文地址:https://www.cnblogs.com/soul-wonder/p/9003466.html
Copyright © 2020-2023  润新知