首页 > 其他 > 详细

redis缓存

时间:2021-09-20 21:08:43      阅读:31      评论:0      收藏:0      [点我收藏+]

java实现redis缓存
要使用redisAPI首先要导入redis包,在pom文件中导入

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

具体代码实现
先创建一个redis工具类

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisPool;
public class RedisJDBC {
    static JedisPool jedisPool;
    static {
        System.out.println("获取redis连接池");
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        //初始化连接池
        jedisPoolConfig.setMaxIdle(10);
        jedisPoolConfig.setMinIdle(2);
        jedisPoolConfig.setMaxTotal(10);
        jedisPoolConfig.setMaxWaitMillis(2000);
        //创建连接池
        jedisPool = new JedisPool(jedisPoolConfig, "master", 6379);

    }
    public static Jedis getRedisConn() {
        System.out.println("获取redis连接");
        Jedis jedis = jedisPool.getResource();
        return jedis;
    }
}

然后具体使用

import com.shujia.springproject.bean.Student;
import com.shujia.springproject.dao.StudentDao;
import com.shujia.springproject.dao.StudentDaoImpl;
import com.shujia.springproject.util.RedisJDBC;
import redis.clients.jedis.Jedis;
import java.util.HashMap;
import java.util.Map;
public class StudentServiceImpl implements StudentService{
    StudentDao studentDao=new StudentDaoImpl();
    // 模拟的缓存数据库
//    HashMap<String,String> map=new HashMap<>();
    @Override
    public String getStudentById(String id,String key) {
        //验证key是否正确 shujia
        if(key==null||!key.equals("shujia")){
            return "滚,不让你用";
        }
        // 先查缓存
        String newId="student:"+id;
        Jedis jedis = RedisJDBC.getRedisConn();
        Map<String, String> map = jedis.hgetAll(newId);
        if(map!=null&&!map.isEmpty()){
            System.out.println("redis缓存返回数据");
            jedis.expire(newId,60);
            jedis.close();
            return map.toString();

        }
//        if(map.containsKey(id)){
//            return map.get(id);
//        }
        //查数据库
        Student student = studentDao.getStudentById(id);
        if(student==null){
            return "没有当前学生";
        }
        // 查到了 数据存到缓存中
//        map.put(id,student.toString());
        HashMap<String, String> m = new HashMap<>();
        m.put("id",student.getId());
        m.put("name",student.getName());
        m.put("age",String.valueOf(student.getGae()));
        m.put("sex",student.getSex());
        m.put("clazz",student.getClazz());
        jedis.hmset(newId,m);
        jedis.expire(newId,60);
        jedis.close();

        return student.toString();
    }
}

redis缓存

原文:https://www.cnblogs.com/yuzhongwen/p/15311959.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!