springboot连接redis并完成缓存操作

本文介绍了如何使用SpringBoot连接Redis,并进行缓存操作。详细讲述了通过Jedis连接Redis,包括引入依赖、编写测试代码和使用连接池。接着讨论了SpringBoot整合Redis的步骤,如引入依赖、配置文件修改及测试代码编写。文章还强调了RedisTemplate在存储任意类型数据时的序列化问题。最后,探讨了Redis作为缓存的应用场景,推荐将查询频繁、修改少且安全性要求不高的数据存入Redis来提升系统性能。
摘要由CSDN通过智能技术生成

springboot连接redis并完成缓存操作

1.连接方式

(1)jedis----传统的项目如ssm等
(2)lettuce—刚出现就被springboot整合
(3)springboot连接redis

2.jedis操作redis服务器

2.1引入依赖

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>4.3.1</version>
</dependency>

2.2 编写测试代码

 void testJedis(){
   
  Jedis jedis=new Jedis("192.168.109.130",6379);
        //该类包含很多对redis操作的方法--而这些方法和原来我们使用的命令一样。
        Set<String> keys = jedis.keys("*");
        System.out.println(keys);
        //对string数据类型操作
        String set = jedis.set(;"k3", "dongdong");
        System.out.println("set:"+set);
        String v3 = jedis.get("k3");
        System.out.println("v3:"+v3);
        jedis.setex("s1",99,"laila");
    jedis.close();
 }

我们会发现每次使用都需要自己新建一个jedis对象,当使用完之后需要关闭对象,这时我们可以引入jedis的连接池

2.3连接池的使用


//连接池的配置信息
        JedisPoolConfig config=new JedisPoolConfig();
        config.setMaxTotal(100);//最多的连接个数
        config.setMaxIdle(10); //最多空闲的连接个数
        config.setMinIdle(2); //最小的空闲个数
        config.setTestOnBorrow(true);//在获取连接对象时是否验证该连接对象的连通性
 //创建连接池对象
        JedisPool jedisPool=new JedisPool(config,"192.168.109.130",6379);
 long start = System.currentTimeMillis();
        for(int i=0;i<1000;i++){
   
            Jedis jedis = jedisPool.getResource();
            String ping = jedis.ping();
            jedis.close();
        }
        long end = System.currentTimeMillis();
        System.out.println("耗时:"+(end-start));
 long start = System.currentTimeMillis();
        //Jedis(String host, int port)
        for(int i=0;i<1000;i++){
   
            Jedis jedis=new Jedis("192.168.109.130",6379);
            String ping = jedis.ping();
            jedis.close();
        }
        long end = System.currentTimeMillis();
        System.out.println("耗时:"+(end-start));

这是我们会发现,使用连接池和不适用连接池是有效率区别的

3.springboot整合redis

3.1引入依赖


<!--redis相关的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

springboot在整合redis时提高两个模板类,StringRedisTemplate和RedisTemplate.以后对redis的操作都在该模板类中。StringRedisTemplate是RedisTemplate的子类。

3.2修改配置文件

#redis的配置信息
spring.redis.host=192.168.1.87
spring.redis.port=6379
#最多获取数
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-wait=-1ms
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.min-idle=0

3.3 编写测试的代码

//因为springboot整合redis时会把StringRedisTemplate创建并交于spring容器管理
    @Autowired
    private StringRedisTemplate redisTemplate;@Test
    void contextLoads() {
   
        //关于key的操作
        Set<String> keys = redisTemplate.keys("*");//获取所有的key
        System.out.println("keys:"+keys);
        Boolean hasKey = redisTemplate.hasKey("k1");//判断是否存在指定的key
        System.out.println("判断是否存在指定的key:"+hasKey);
        Boolean k1 = redisTemplate.delete("k1");//删除指定的key
        System.out.println
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值