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中进行对象的缓存详解整合,希望对大家有所帮助
如对本文有疑问, 点击进行留言回复!!
荐 深入理解Java中的BigInteger和 BigDecimal,再也不怕面试了
tomact正常启动,但是在日志文件报错java.lang.NoClassDefFoundError: java/util/logging/Logger
servlet整合quartz:servlet中使用quartz,服务器启动时加载任务
荐 Java——集合中的Map接口通过HashMap类实现一些常用的方法
SpringBoot整合mybatis访问时报错Invalid bound statement (not found)
网友评论