抽象和接口的区别
写在前面
Spring中,缓存的使用,主要是配置一个cacheManage,缓存数据的存放,就要考虑,是缓存本地还是缓存服务器,缓存本地有很多优秀的基于本地缓存的框架,Guava,EhCache,HazelCast,缓存服务器主要是redis,Memcache等
一、本地缓存
1.1、Guava + @Cacheable
1.2、EhCache + @Cacheable
1.3、HazelCast + @Cacheable()
HazelCast,是一个很优秀的缓存框架,和Derby等其他 常作为嵌入式数据库设计方案,分布式架构中的分布式配置,会考虑用到这些可嵌入式的数据库。
二、缓存服务器 Redis
2.1、Redis + @Cacheable
需要配置序列化机制,还有自定义缓存时间,需要额外的配置
2.2、Redistemplate
这个就比较个性化了,可以根据需要,缓存类型(String,List,Hash…)
2.3、Redission
这个和和以上两个不太一样,底层的脚本引擎不一样,底层封装了更多的高级API操作,使用时,配置Jaon/Yml
spring:
redis:
redisson:
config: classpath:redisson-config.yaml
#Redisson配置
singleServerConfig:
address: "redis://ip:6379"
password: null
clientName: null
database: 15 # 选择使用哪个数据库0~15
idleConnectionTimeout: 10000
pingTimeout: 1000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
reconnectionTimeout: 3000
failedAttempts: 3
subscriptionsPerConnection: 5
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
connectionMinimumIdleSize: 32
connectionPoolSize: 64
dnsMonitoringInterval: 5000
#dnsMonitoring: false
threads: 0
nettyThreads: 0
codec:
class: "org.redisson.codec.JsonJacksonCodec"
transportMode: "NIO"