All Projects → qiujiayu → Autoloadcache

qiujiayu / Autoloadcache

Licence: apache-2.0
AutoLoadCache 是基于AOP+Annotation等技术实现的高效的缓存管理解决方案,实现缓存与业务逻辑的解耦,并增加异步刷新及“拿来主义机制”,以适应高并发环境下的使用。

Programming Languages

java
68154 projects - #9 most used programming language
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to Autoloadcache

Redisson
Redisson - Redis Java client with features of In-Memory Data Grid. Over 50 Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Tomcat, Scheduler, JCache API, Hibernate, MyBatis, RPC, local cache ...
Stars: ✭ 17,972 (+901.78%)
Mutual labels:  redis, spring-cache
Jetcache
JetCache is a Java cache framework.
Stars: ✭ 3,167 (+76.53%)
Mutual labels:  redis, spring-cache
Redli
Redli - A humane alternative to the Redis-cli and TLS
Stars: ✭ 126 (-92.98%)
Mutual labels:  redis
Sanic session
Provides server-backed sessions for Sanic using Redis, Memcache and more.
Stars: ✭ 131 (-92.7%)
Mutual labels:  redis
Spring Boot Quick
🌿 基于springboot的快速学习示例,整合自己遇到的开源框架,如:rabbitmq(延迟队列)、Kafka、jpa、redies、oauth2、swagger、jsp、docker、spring-batch、异常处理、日志输出、多模块开发、多环境打包、缓存cache、爬虫、jwt、GraphQL、dubbo、zookeeper和Async等等📌
Stars: ✭ 1,819 (+1.39%)
Mutual labels:  redis
Kangaroo
SQL client and admin tool for popular databases
Stars: ✭ 127 (-92.92%)
Mutual labels:  redis
Lowkiq
Ordered background jobs processing
Stars: ✭ 129 (-92.81%)
Mutual labels:  redis
Tornadis
async minimal redis client for tornado ioloop designed for performances (use C hiredis parser)
Stars: ✭ 126 (-92.98%)
Mutual labels:  redis
Vagrant Elastic Stack
Giving the Elastic Stack a try in Vagrant
Stars: ✭ 131 (-92.7%)
Mutual labels:  redis
Async Redis
First class async & promise support for redis.
Stars: ✭ 128 (-92.87%)
Mutual labels:  redis
Overlord
Overlord是哔哩哔哩基于Go语言编写的memcache和redis&cluster的代理及集群管理功能,致力于提供自动化高可用的缓存服务解决方案。
Stars: ✭ 1,884 (+5.02%)
Mutual labels:  redis
Light Push
轻量级推送服务和实时在线监控平台,同时用于开发即时通信系统,基于node的socket.io,支持web、android、ios客户端,支持移动端离线推送,可进行分布式部署
Stars: ✭ 128 (-92.87%)
Mutual labels:  redis
Dailyfresh
Django-天天生鲜电商学习项目
Stars: ✭ 127 (-92.92%)
Mutual labels:  redis
Sk Admin
基于 Spring Boot、 Spring Data JPA、 Spring Security、Vue 的前后端分离的管理系统。项目采用模块开发方式, 主要模块:权限管理 (RBAC(Role-Based Access Control,基于角色的访问控制),支持数据字典、数据权限管理、前端菜单支持动态路由)、日志管理、代码生成器、系统监控、云存储管理、系统工具等等
Stars: ✭ 130 (-92.75%)
Mutual labels:  redis
K8s Redis Ha
Kubernetes Redis with High Availability
Stars: ✭ 127 (-92.92%)
Mutual labels:  redis
Zhttp
基于swoole的异步轻量级web框架,内部封装协程异步非阻塞全套mysql、redis、mongo、memcached连接池,可以轻松start、reload、stop,加入数据库的查询模块,框架已经封装好近乎同步写法,底层异步调用
Stars: ✭ 131 (-92.7%)
Mutual labels:  redis
Faust
Python Stream Processing. A Faust fork
Stars: ✭ 124 (-93.09%)
Mutual labels:  redis
Db Tutorial
💾 db-tutorial 是一个数据库教程。
Stars: ✭ 128 (-92.87%)
Mutual labels:  redis
Csredis
.NET Core or .NET Framework 4.0+ client for Redis and Redis Sentinel (2.8) and Cluster. Includes both synchronous and asynchronous clients.
Stars: ✭ 1,714 (-4.46%)
Mutual labels:  redis
Jiiiiiin Security
一个前后端分离的内管基础项目
Stars: ✭ 132 (-92.64%)
Mutual labels:  redis

AutoLoadCache


Build Status Maven Central GitHub license

现在使用的缓存技术很多,比如RedisMemcacheEhCache等,甚至还有使用ConcurrentHashMapHashTable 来实现缓存。但在缓存的使用上,每个人都有自己的实现方式,大部分是直接与业务代码绑定,随着业务的变化,要更换缓存方案时,非常麻烦。接下来我们就使用AOP + Annotation 来解决这个问题,同时使用自动加载机制 来实现数据“常驻内存”。

设计思想及原理

在infoq 发表的文章《面对缓存,有哪些问题需要思考?》

《再谈缓存的穿透、数据一致性和最终一致性问题》

使用方法

注解(Annotation)说明

分布式锁支持

表达式的应用

缓存删除

Magic模式

注意事项

与Spring Cache的区别

最佳实战

autoload-cache-spring-boot-starter 推荐使用这个,test目录中也有可运行例子。

源码阅读

已经实现基于aspectj 的AOP,代码在com.jarvis.cache.aop.aspectj.AspectjAopInterceptor。想通过阅读代码了解详细细节,可以以此为入口。

注意:有些类get, set, hashCode(), toString() equals()等方法是使用 lombok 自动生成的,所以使用Eclipse 和 IntelliJ IDEA 时,需要先安装lombok。

更新日志

QQ群:429274886

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].