Springboot中缓存实现方案

抽象和接口的区别

    • 写在前面
    • 一、本地缓存
      • 1.1、Guava + @Cacheable
      • 1.2、EhCache + @Cacheable
      • 1.3、HazelCast + @Cacheable()
    • 二、缓存服务器 Redis
      • 2.1、Redis + @Cacheable
      • 2.2、Redistemplate
      • 2.3、Redission

写在前面

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"

你可能感兴趣的:(Redis)