同步操作将从 舒建辉/new-jpa-redis-parent 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
本项目发展自2019年,内部版本已在线上大型项目生产环境中使用,经过严格测试,BUG极少,不超过1小时加完缓存扩展,现有的几种缓存方式都有demo,大家可以持续关注,有时间会不断更新,也希望大家积极参与共同开发。 大家有好的建议可以联系本人,一定采纳学习。
第一种方案:只做redis缓存,不保存Mysql数据库, 需加@EnableRedisRepositories注解
优点:配置极省,非常方便,功能强大,支持缓存加索引等
弊端:只能走Redis,不走Mysql,不适合我们通用的开发场景,只适用于以Redis做唯一数据保存的数据库场景
第二种方案:加注解方式 需加@EnableCaching注解
优点:配置较省,较为方便
弊端:虽然走Redis,也走Mysql,但开发中容易出错,缓存删除范围过大,缓存条数过多;加缓存工作量偏大;
第三种方案(推荐):
优点:走Redis,也走Mysql,配置超级省,最为方便,功能可以非常强大,定制化实现,灵活运用,精细化缓存,缓存条数最少,缓存删除范围最小,全动态数据变化的缓存变更,开发中第一层缓存和第二层缓存都支持,并支持事务。
弊端:目前大部分场景都已支持,当然事在人为,可以做到很全面,还可考量并发性能、排序方式、加索引的支持等等场景
目前版本v3.0.RELEASE正式发布,已经可以使用
相比v2.0.RELEASE 性能有巨大提升
采用的技术也完全不同,主要使用到了lettuce、disruptor、reactor、rxjava、rxjava2、commons-pool2等
说明:lettuce(高级Java Redis客户端,用于线程安全同步,异步和反应式使用。支持群集,Sentinel,流水线和编解码器。 https://lettuce.io)
大型老项目加缓存顶多1小时全部搞完,完美收官
支持Netty无阻塞处理极速模式
支持Netty管道极速模式
支持Netty异步极速模式
支持客户端队列、异步线程池、同步线程池模式
支持Netty客户端资源线程池模式
支持退避重试5次模式
支持编码SerializedObjectCodec
支持金融级别缓存安全
支持Redis故障,自动走数据库,不影响系统运行
通用功能
一层缓存实现(String)
二层缓存实现(Hash)
非常简单,例如: CustomerRepository,只需要继承 BaseJpaRedisRepository<Customer, Long>
如下: CustomerRepository extends BaseJpaRedisRepository<Customer, Long>
建议: 需要进行缓存的数据抽离放到专用以表或实体来作为一个 Repository 缓存,方便缓存管理, 一般情况可以直接继承BaseJpaRedisRepository,不继承的Repository,缓存不生效。
性能: 批量1000个保存操作,按照当前配置耗时平均在530ms,第一次操作时候耗时会长一些,有些配置需要初始化
注意点:https://www.jianshu.com/p/8dfbdd958b99 【聊聊lettuce的shareNativeConnection参数】
知识点:https://www.cnblogs.com/liyan492/p/9858548.html 【Redis的三个框架:Jedis,Redisson,Lettuce】
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。