java 代码优化,redis优化 (记录)

本文分享了Java代码和Redis使用中的优化策略,包括避免多次JSON解析,减少数据库查询次数,使用线程池隔离计算和IO操作,合理运用重试逻辑,避免大量Key同时失效,使用Redis连接池,理解volatile关键字的使用,善用pipeline提升效率,正确实现并发安全的锁机制,以及选择合适的线程池拒绝策略。
摘要由CSDN通过智能技术生成

JSON对象解析的过程中要尽量避免多次解析的情况;如非必要,要尽量减少JSON对象的反复解析。

使用Redis或数据库查询时,如果是上下文有逻辑关系的代码,尽量避免反复使用同一查询,其原则是:能少查一次就少查一次。查询结果建议都要进行一定的非空或其它异常判断等等。

在进行业务逻辑的计算和IO读写操作时,建议分别使用不同的线程。例如:业务逻辑的计算可以使用CPU密集型线程池;而IO操作可以使用IO型线程。RxJava是一个不错的选择工具,值得尝试!

使用重试逻辑时,不要太暴力。

如下图,Redis有可能会出现超时的情况,这里的业务又比较重要,所以有必要加上重试逻辑,而加的重试逻辑又太过于暴力。

这样可能得不到想要的效果,反而会加重Redis的负担,所以建议加上适当的停顿时间。如下图:

查询数据库或Redis等等时,尽可能给予返回值,前后代码有先后依赖关系时,应该给予必要的逻辑判断。尽量不要像下面这样,insert进去数据库之后就什么不管了。因为insert操作会可能失败的,一旦这里失败,其它有依赖的地方就会产生问题,代码要尽量能考虑到失败时的处理。

尽量避免大量Redis Key同时(分毫不差的)失效。Redis是单线程模型的,如果大量对象同时失效,后续的请求可能会频繁出现请求超时的问题。如图:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值