redis的使用-jedis及spring-data-redis及spring-boot-starter-dada-redis

之前介绍了redis是什么,现在来介绍一下redis的使用

redis的使用,大部分情况下就这三种,尤其是第三种比较多

jedis

导入依赖

        
            redis.clients
            jedis
            2.9.0
        

使用Jedis

Jedis jedis = new Jedis("127.0.0.1", 6379);

jedis.set("mykey1", "this is my key1"); // string

jedis.get("mykey1"); // 获取指定key

jedis.del("mykey1") // 删除指定key

jedis.hset("mykeyhash", "username", "root"); // hash

jedis.lpush("mykeyList", "a","b","c","d","e"); // list

jedis.sadd("mykeySet", "a","a","w"); // set

jedis.zadd("mykeyZSet", 60, "root"); // zset

jedis.close();

用连接池使用Jedis

为了提高redis的连接效率,我们可以用连接池


        JedisPoolConfig config = new JedisPoolConfig();
        // 连接池的最大连接数
        config.setMaxTotal(20);
        // 最大空闲的连接数
        config.setMaxIdle(5);
        // 最小的空闲连接数
        config.setMinIdle(3);
        // 假设连接池没有连接,客户端需要等待的时间,单位是毫秒
        config.setMaxWaitMillis(5000);

        JedisPool pool = new JedisPool(config, "127.0.0.1", 6379);
        Jedis jedis = pool.getResource();

然后正常使用就行,记得,使用完 close掉,会把连接归还给连接池

spring-data-redis

spring-data-redis也有连接池,并且会进行自动管理,提供了一个封装程度很高的RedisTemplate类,还把redis客户端的大量API封装成了接口,支持redis那五种数据类型的操作

在Redistemplate中,有两类方法经常使用,opsForXXX、boundXXXOps,这个XXX指的是我们value的类型,前者没有指定指定操作的key,可以在一个连接内,或者说一个事务内,操作多个key以及多个value,后者是制定了一个key,在一个连接内,或者说一个事务内,只能操作这个key以及这个key对应的value

导入依赖

        
            redis.clients
            jedis
            3.0.1
        
        
            org.springframework.data
            spring-data-redis
            2.3.4.RELEASE
        

配置redis属性


    
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
    

    
    


    
    
        
        
        
        

    

使用

 @Autowired
 private RedisTemplate redisTemplate;

 redisTemplate.opsForValue().set("key", "value");
 String value = redisTemplate.opsForValue().get("key");

注意,这儿类型声明的分别是key和value的属性,value如果是对象,这个对象必须进行序列化,因为在redis中存储对象,redis存储的还是字符串,它会把数据转换为数组的形式存储,所以在存取的时候,涉及到序列化与反序列化

spring-boot-starter-data-redis

导入依赖

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

配置redis相关属性

#配置springboot和redis整合,可以直接在程序中注入RedisTemplate对象操作redis数据库spring:
spring:
  redis:
    host: 127.0.0.1
    port: 6379
    database: 0

使用

使用方式与上面一致,直接注入使用即可

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

你可能感兴趣的:(java日常分享,redis,数据库,java)