SpringBoot项目中使用redis

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

简单介绍一下,springboot项目中如何使用redis。

一、引入redis依赖

<!-- redis依赖包 -->
<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

二、配置application.properties

#redis配置
#Redis服务器地址
spring.redis.host=127.0.0.1
#Redis服务器连接端口
spring.redis.port=6379
#Redis数据库索引(默认为0)
spring.redis.database=0  
#连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=50
#连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=3000
#连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=20
#连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=2
#连接超时时间(毫秒)
spring.redis.timeout=5000

三、编写配置类

1、操作string

工具类代码:

package com.example.myblog.util;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

@Component
public class RedisUtil {

    @Autowired
    private RedisTemplate<String,String> redisTemplate;

  
    
    
    
    /**
     * 读取数据
     */
    public String getString(final String key) {
        return redisTemplate.opsForValue().get(key);
    }

    /**
     * 写入数据
     */
    public boolean setString(final String key, String value) {
        boolean result = false;
        try {
            redisTemplate.opsForValue().set(key, value);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 更新数据
     */
    public boolean getAndSetString(final String key, String value) {
        boolean result = false;
        try {
            redisTemplate.opsForValue().getAndSet(key, value);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 删除数据
     */
    public boolean delete(final String key) {
        boolean result = false;
        try {
            redisTemplate.delete(key);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }


}

测试类代码:

package com.example.myblog;


import com.example.myblog.util.RedisUtil;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public class MyblogApplicationTests {

    @Autowired
    private RedisUtil redisUtil;

    @Test
    public void testString(){
        Boolean flag = null;
        //插入string
        flag = redisUtil.setString("testString","testString");
        System.out.println(flag);
        String result = "";
        //获取string
        result = redisUtil.getString("testString");
        System.out.println(result);
        //修改string
        flag = redisUtil.getAndSetString("testString","rename");
        System.out.println(flag);
        //获取string
        result = redisUtil.getString("testString");
        System.out.println(result);
        //栓除string
        flag = redisUtil.delete("testString");
        result = redisUtil.getString("testString");
        System.out.println(result);
    }



}

测试结果:
在这里插入图片描述

2、操作list

工具类代码:

/**
     * 读取数据
     */
    public String getList(final String key,long index) {
        return redisTemplate.opsForList().index("testList",index);
    }

    /**
     * 写入数据
     */
    public long setList(final String key, String value) {
        long result = 0;
        try {
            result = redisTemplate.opsForList().leftPush("testList","testList1");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 更新数据
     */
    public boolean getAndSetList(final String key,Long index, String value) {
        boolean result = false;
        try {
            redisTemplate.opsForList().set(key,index,value);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

测试类代码:

@Test
    public void testList(){
        Long flag = null;
        //插入list
        flag = redisUtil.setList("testList","testList1");
        System.out.println(flag);
        flag = redisUtil.setList("testList","testList2");
        System.out.println(flag);
        String result = "";
        //获取list
        result = redisUtil.getList("testList",1);
        System.out.println(result);
        //修改list
        Boolean flag1 = null;
        long index = 1;
        flag1 = redisUtil.getAndSetList("testList",index,"hello");
        System.out.println(flag);
        //获取list
        result = redisUtil.getList("testList",1);
        System.out.println(result);
        //删除list
        flag1 = redisUtil.delete("testList");
        result = redisUtil.getString("testList");
        System.out.println(result);
    }

测试结果:
在这里插入图片描述

3、操作hash

工具类代码:

/**
     * 读取数据
     */
    public Object getHash(final String key, String hashKey) {
        return redisTemplate.opsForHash().get(key,hashKey);
    }

    /**
     * 写入数据、更新数据
     */
    public void setHash(final String key, String hashKey, String value) {
        try {
            redisTemplate.opsForHash().put(key,hashKey,value);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

测试类代码:

@Test
    public void testHash(){
        //插入hash
        redisUtil.setHash("testHash","hashKey1","hashValue1");
        Object result = new Object();
        //获取hash
        result = redisUtil.getHash("testHash","hashKey1");
        System.out.println(result);
        redisUtil.setHash("testHash","hashKey1","hello");
        //修改hash
        result = redisUtil.getHash("testHash","hashKey1");
        System.out.println(result);
        Boolean flag = null;
        //删除hash
        flag = redisUtil.delete("testHash");
        result = redisUtil.getHash("testHash","hashKey1");
        System.out.println(result);
    }

测试结果:
在这里插入图片描述

4、操作set

工具类代码:

/**
     * 读取数据
     */
    public Set<String> getSet(final String key) {
        return redisTemplate.opsForSet().members(key);
    }
    /**
     * 插入数据
     */
    public long setSet(final String key, String[] values) {
        long flag = 0;
        try {
            flag = redisTemplate.opsForSet().add(key,values[0],values[1]);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return flag;
    }

测试类代码:

@Test
    public void testSet(){
        //插入hash
        long flag1 = 0;
        String[] values = {"testSet1","testSet2"};
        flag1 = redisUtil.setSet("testSet",values);
        System.out.println(flag1);
        Set result = new HashSet();
        //获取hash
        result = redisUtil.getSet("testSet");
        System.out.println(result);

        Boolean flag = null;
        //删除set
        flag = redisUtil.delete("testSet");
        result = redisUtil.getSet("testSet");
        System.out.println(result);
    }

测试结果:
在这里插入图片描述

5、操作zset

工具类代码:

/**
     * 读取数据
     */
    public Set<String> getZset(final String key) {
        return redisTemplate.opsForZSet().range(key,0,2);
    }
    /**
     * 插入数据
     */
    public boolean setZset(final String key, String value,long index) {
        boolean flag = true;
        try {
            flag = redisTemplate.opsForZSet().add(key,value,index);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return flag;
    }

测试类代码:

@Test
    public void testZSet(){
        //插入ZSet
        Boolean flag1 = true;
        flag1 = redisUtil.setZset("testZset","testZset",1);
        System.out.println(flag1);
        Set result = new HashSet();
        //获取ZSet
        result = redisUtil.getZset("testZset");
        System.out.println(result);
        //删除ZSet
        Boolean flag = null;
        flag = redisUtil.delete("testZset");
        result = redisUtil.getSet("testZset");
        System.out.println(result);
    }

测试结果:
在这里插入图片描述

完整代码

工具类代码:

package com.example.myblog.util;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import java.util.Map;
import java.util.Set;

@Component
public class RedisUtil {
    @Autowired
    private RedisTemplate<String,String> redisTemplate;



    /**
     * 读取缓存
     */
    public Set<String> getZset(final String key) {
        return redisTemplate.opsForZSet().range(key,0,2);
    }
    /**
     * 插入数据
     */
    public boolean setZset(final String key, String value,long index) {
        boolean flag = true;
        try {
            flag = redisTemplate.opsForZSet().add(key,value,index);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return flag;
    }




    /**
     * 读取缓存
     */
    public Set<String> getSet(final String key) {
        //可以多个值
        return redisTemplate.opsForSet().members(key);
    }
    /**
     * 插入数据
     */
    public long setSet(final String key, String[] values) {
        long flag = 0;
        try {
            flag = redisTemplate.opsForSet().add(key,values[0],values[1]);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return flag;
    }




    /**
     * 读取缓存
     */
    public Object getHash(final String key, String hashKey) {
        return redisTemplate.opsForHash().get(key,hashKey);
    }

    /**
     * 写入缓存、更新缓存
     */
    public void setHash(final String key, String hashKey, String value) {
        try {
            redisTemplate.opsForHash().put(key,hashKey,value);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }




    /**
     * 读取缓存
     */
    public String getList(final String key,long index) {
        return redisTemplate.opsForList().index("testList",index);
    }

    /**
     * 写入缓存
     */
    public long setList(final String key, String value) {
        long result = 0;
        try {
            result = redisTemplate.opsForList().leftPush("testList","testList1");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 更新缓存
     */
    public boolean getAndSetList(final String key,Long index, String value) {
        boolean result = false;
        try {
            redisTemplate.opsForList().set(key,index,value);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }




    /**
     * 读取缓存
     */
    public String getString(final String key) {
        return redisTemplate.opsForValue().get(key);
    }

    /**
     * 写入缓存
     */
    public boolean setString(final String key, String value) {
        boolean result = false;
        try {
            redisTemplate.opsForValue().set(key, value);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 更新缓存
     */
    public boolean getAndSetString(final String key, String value) {
        boolean result = false;
        try {
            redisTemplate.opsForValue().getAndSet(key, value);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 删除缓存
     */
    public boolean delete(final String key) {
        boolean result = false;
        try {
            redisTemplate.delete(key);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }


}

测试类代码:

package com.example.myblog;


import com.example.myblog.util.RedisUtil;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.HashSet;
import java.util.Set;

@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public class MyblogApplicationTests {

    @Autowired
    private RedisUtil redisUtil;


    @Test
    public void test(){
        this.testString();
        this.testList();
        this.testHash();
        this.testSet();
        this.testZSet();
    }

    @Test
    public void testString(){
        Boolean flag = null;
        //插入string
        flag = redisUtil.setString("testString","testString");
        System.out.println(flag);
        String result = "";
        //获取string
        result = redisUtil.getString("testString");
        System.out.println(result);
        //修改string
        flag = redisUtil.getAndSetString("testString","rename");
        System.out.println(flag);
        //获取string
        result = redisUtil.getString("testString");
        System.out.println(result);
        flag = redisUtil.delete("testString");
        result = redisUtil.getString("testString");
        System.out.println(result);
    }

    @Test
    public void testList(){
        Long flag = null;
        //插入list
        flag = redisUtil.setList("testList","testList1");
        System.out.println(flag);
        flag = redisUtil.setList("testList","testList2");
        System.out.println(flag);
        String result = "";
        //获取list
        result = redisUtil.getList("testList",1);
        System.out.println(result);
        //修改list
        Boolean flag1 = null;
        long index = 1;
        flag1 = redisUtil.getAndSetList("testList",index,"hello");
        System.out.println(flag);
        //获取list
        result = redisUtil.getList("testList",1);
        System.out.println(result);
        flag1 = redisUtil.delete("testList");
        result = redisUtil.getString("testList");
        System.out.println(result);
    }

    @Test
    public void testHash(){
        //插入hash
        redisUtil.setHash("testHash","hashKey1","hashValue1");
        Object result = new Object();
        //获取hash
        result = redisUtil.getHash("testHash","hashKey1");
        System.out.println(result);
        redisUtil.setHash("testHash","hashKey1","hello");
        //修改hash
        result = redisUtil.getHash("testHash","hashKey1");
        System.out.println(result);
        //删除
        Boolean flag = null;
        flag = redisUtil.delete("testHash");
        result = redisUtil.getHash("testHash","hashKey1");
        System.out.println(result);
    }

    @Test
    public void testSet(){
        //插入Set
        long flag1 = 0;
        String[] values = {"testSet1","testSet2"};
        flag1 = redisUtil.setSet("testSet",values);
        System.out.println(flag1);
        Set result = new HashSet();
        //获取Set
        result = redisUtil.getSet("testSet");
        System.out.println(result);
        //获取Set
        Boolean flag = null;
        flag = redisUtil.delete("testSet");
        result = redisUtil.getSet("testSet");
        System.out.println(result);
    }

    @Test
    public void testZSet(){
        //插入ZSet
        Boolean flag1 = true;
        flag1 = redisUtil.setZset("testZset","testZset",1);
        System.out.println(flag1);
        Set result = new HashSet();
        //获取ZSet
        result = redisUtil.getZset("testZset");
        System.out.println(result);
        //删除ZSet
        Boolean flag = null;
        flag = redisUtil.delete("testZset");
        result = redisUtil.getSet("testZset");
        System.out.println(result);
    }

}

测试结果:
在这里插入图片描述

总结

上面简单地介绍了springboot项目中如何使用redis进行缓存。简单测试了常用的插入、修改、查询、删除的方法,redis接口中还有很多方法,就不一一列举测试了,有兴趣可以多去看看源码。

  • 13
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值