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();
}
}
原文:https://www.cnblogs.com/yuzhongwen/p/15311959.html