您当前的位置: 首页 >  redis

梁云亮

暂无认证

  • 2浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

springboot2.x整合Redis 之 jedis

梁云亮 发布时间:2020-11-04 07:42:22 ,浏览量:2

注:SpringBoot2.x之后取消了对Jedis的支持,取而代之的是Lettuce。有关Lecture的学习请参考:https://hcshow.blog.csdn.net/article/details/105863342

第一步:创建项目,添加Maven依赖

    org.projectlombok
    lombok
    1.18.10



    com.fasterxml.jackson.core
    jackson-core
    2.10.1


    com.fasterxml.jackson.core
    jackson-databind
    2.10.1


    com.fasterxml.jackson.core
    jackson-annotations
    2.10.1



    com.fasterxml.jackson.datatype
    jackson-datatype-jsr310



    org.springframework.boot
    spring-boot-starter


    org.springframework.boot
    spring-boot-starter-test
    test
    
        
            org.junit.vintage
            junit-vintage-engine
        
    




    org.springframework.boot
    spring-boot-starter-data-redis



    org.apache.commons
    commons-pool2



    redis.clients
    jedis
    3.2.0

第二步:配置文件application.yml
spring:
    redis:
        database: 0
        host: 127.0.0.1
        port: 6379
#        password: 123456
        jedis:
            pool:
                max-active: 100
                max-idle: 3
                max-wait: -1
                min-idle: 0
        timeout: 1000
第三步:Redis配置文件
@Configuration
public class RedisConfig  {
    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) {
        RedisTemplate template = new RedisTemplate();
        template.setConnectionFactory(connectionFactory);

        //使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值(默认使用JDK的序列化方式)
        GenericJackson2JsonRedisSerializer serializer = new GenericJackson2JsonRedisSerializer();

        //使用StringRedisSerializer来序列化和反序列化redis的key值
        template.setKeySerializer(new StringRedisSerializer());
        template.setHashKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(serializer);
        template.setHashValueSerializer(serializer);//设置值的序列化方式,默认是二进制
        template.afterPropertiesSet();

        return template;
    }

    @Bean
    public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory factory) {
        StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
        stringRedisTemplate.setConnectionFactory(factory);
        return stringRedisTemplate;
    }
}
第四步:测试代码
@SpringBootTest
public class HashDemoTest {
    @Resource
    private RedisTemplate redisTemplate;

    @Test
    public void fun0(){
        redisTemplate.opsForHash().put("sss","k1","v1");
        //设置指定key过期时间
        redisTemplate.expire("sss",2,TimeUnit.MINUTES);
    }

    @Test
    public void fun1(){
        System.out.println(redisTemplate);
        Map map = new HashMap();
        map.put("key1", "value1");
        map.put("key2", "value2");
        map.put("key3", "value3");
        map.put("key4", "value4");
        map.put("key5", "value5");

        redisTemplate.opsForHash().putAll("map1", map);
        redisTemplate.expire("map1",30, TimeUnit.HOURS);
    }

    @Test
    public void fun2(){
        String value = (String) redisTemplate.opsForHash().get("map1", "key1");
        System.out.println("value:" + value);

        Map resultMap = redisTemplate.opsForHash().entries("map1");
        System.out.println("resultMap:" + resultMap);

        Set keys = redisTemplate.opsForHash().keys("map1");
        System.out.println("keys:" + keys);

        List values = redisTemplate.opsForHash().values("map1");
        System.out.println("values:" + values);
    }

    @Test
    public void fun3(){
        //删除Hash中指定的key
        Long delete = redisTemplate.opsForHash().delete("map1", "key1");
        System.out.println(delete);

        Map resultMap = redisTemplate.opsForHash().entries("map1");
        System.out.println("resultMap:" + resultMap);
    }
}
关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0462s