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<SysUserEntity> { /** * 序列化 */ 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<SysRoleEntity> 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中进行对象的缓存详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对亿速云网站的支持!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。