代码如何连接redis
public class JedisAPI {
private static Jedis jedis =null;
//创建对象
@Before
public void init(){
jedis=new Jedis("192.168.164.110",6379);
}
@Test
public void set(){
jedis.set("str","abc");
}
@Test
public void hset(){
jedis.hset("user","id","123456");
}
}
编写一个操作redis的工具类——RedisUtil
public class RedisUtil {
private static JedisPool jedisPool;
static {
//连接池设置
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(5);
jedisPoolConfig.setMaxWaitMillis(100);
jedisPool=new JedisPool(jedisPoolConfig,"192.168.164.110",6379);
}
//获取连接
public static Jedis getJedis(){
return jedisPool.getResource();
}
//关闭连接——放回连接池
public static void close(){
jedisPool.close();
}
}
在业务逻辑层增加redis做缓存,提高查询效率
//业务逻辑层
public class UserServiceImpl implements UserService {
Jedis jedis = RedisUtil.getJedis();
UserDao userDao=new UserDaoImpl();
public String selectById(String id) {
/**
* 连接redis
* hash作为缓存数据结构
* 通过id查询获取一个map结果
* map=有数据 map={}没数据
*/
try{
Map<String, String> map = jedis.hgetAll("students:"+id);
//map不等于null且map不等于空
if(map!=null && !map.isEmpty()){
jedis.expire("students:"+id,30);
return "redis——"+map.toString();
}
}catch(Exception e){
System.out.println("redis查询失败");
e.printStackTrace();
}finally {
jedis.close();
}
/**
* 没查到数据,去mysql查
* 查到了,存储到缓存
*/
Students students = userDao.selectById(id);
if(students==null){
return "没有当前用户";
}
try{
HashMap<String, String> stu = new HashMap<>();
stu.put("id",students.getId());
stu.put("name",students.getName());
stu.put("age",students.getAge());
stu.put("sex",students.getSex());
stu.put("clazz",students.getClazz());
jedis.hmset(id,stu);
jedis.expire("students:"+id,30);//加过期时间
}catch(Exception e){
System.out.println("redis存储失败");
e.printStackTrace();
}finally {
jedis.close();
}
return "mysql——"+students.toString();
}
}