Java在redis中进行对象的缓存一般有两种方法,这里介绍序列化的方法,个人感觉比较方便,不需要转来转去。
一、首先,在存储的对象上实现序列化的接口
package com.cy.example.entity.system;
import java.util.List;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.cy.example.entity.SuperEntity;
@TableName("users")
public class SysUserEntity extends SuperEntity {
/**
* 序列化
*/
private static final long serialVersionUID = -2967710007706812401L;
private String c_username;
private String c_pwd;
private String c_phone;
private String c_email;
private String n_age;
private String n_sex;
private String n_status;
private SysDepartmentEntity n_departmentId;
@TableField(exist = false)
private List roleList;// 一个用户具有多个角色
private SysUserEntity n_superior;
//省略getter、setter
}
二、进行存储的编写
// 存储对象
public void setObject(String key, Object obj) {
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.set(key.getBytes(), SerializeUtil.serialize(obj));
} catch (Exception e) {
logger.info("缓存服务器连接异常!");
e.printStackTrace();
} finally {
// 返还到连接池
jedis.close();
}
}
三、获取存储的对象
// 获取对象
public Object getObject(String key) {
byte[] obj = null;
Jedis jedis = null;
try {
jedis = pool.getResource();
obj = jedis.get(key.getBytes());
} catch (Exception e) {
logger.info("缓存服务器连接异常!");
e.printStackTrace();
} finally {
// 返还到连接池
jedis.close();
}
return SerializeUtil.unserialize(obj);
}
可以看到,redis中存储的是序列化之后的对象
以上所述是小编给大家介绍的Java在redis中进行对象的缓存详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!