关于jpa整合redisredis 序列化化和反redis 序列化化的问题

首先明确一下问题的场景

现在洳果直接将redis的注解放在repository上使用,是个什么情况呢

  1.首先我有一个实体XxAdmin,主键为id

 

报这个错原因就是redis认定这个key是Null的,没办法存入所以報错了。

但是之前咱们上一篇就是这么用的呀查看上一篇,可以发现redis是使用在service层,是在repository的再封装层使用的那redis就不能直接使用在repository层了麼?

【这里因为项目原因不赘述为什么不封装一层service层使用,而是直接在repository层使用】【最后具体为什么key在这里会认定为null也没有找到原因若知情,恳请告知!!!谢谢了】

所以换一种思路来解决这个问题,就是提前设定一种key的生成策略即在RedisConfig类中指定一种KeyGenerator。【这一步骤的解釋可以查看】

  在RedisConfig中,设定仅取第一个参数作为key的key生成策略

控制台成功从数据库查询了Xxadmin对象

查看redis中已经将本对象存入缓存

再次访问,发现并未执行SQL语句直接从缓存中取出本对象。

指定本类中所有的方法操作的缓存都是名为admins的缓存!!

具体可以参考:查看这几个注解的使用场景

本系列的源代码,可以从GitHub上获取查看:类名及方法名都是对应的。所以想查看这部分使用的可以直接在项目中查看即可!!

}

  (7)配置log4j日志信息如下:

  首先我们向user表总插入一条数据,数据库显示如下:

  现在我们查询一下user表中id=24的数据,观擦控制台输出的信息如下:

  通过控淛台输出信息我们可以知道,这次执行了数据库查询并开启了Redis缓存查询结果。接下来我们再次查询user表中id=24的数据观察控制台,如下:

  通过控制台输出信息我们可以知道这次并没有执行数据库查询,而是从Redis缓存中查询并返回查询结果。我们查看redis中的信息如下:

}

我要回帖

更多关于 redis 序列化 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信