一、Java缓存机制
1、mybatis,hibernate缓存机制:oscache,ehcache
2、oscache,ehcache:jvm内置缓存
ehcache主要是对数据库访问的缓存
oscache 主要是对页面的缓存
3、jvm缓存缺点:内存问题、无法持久化、多节点间无法共享
4、ehcache使用
4.1 引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
4.2 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false">
<diskStore path="java.io.tmpdir/Tmp_EhCache" />
<!-- 默认配置 -->
<defaultCache maxElementsInMemory="5000" eternal="false"
timeToIdleSeconds="120" timeToLiveSeconds="120"
memoryStoreEvictionPolicy="LRU" overflowToDisk="false" />
<cache name="baseCache" maxElementsInMemory="10000"
maxElementsOnDisk="100000" />
</ehcache>
4.3 Mapper接口注解
接口类上:@CacheConfig(cacheNames = "baseCache")
接口方法上:@Cacheable
4.4 主类上
@EnableCaching
4.5 清除缓存
cacheManager.getCache("cacheName").clear();
二、Redis
1、简介
1、优势:减轻数据库访问压力
2、应用场景:session共享、token生成、分布式锁
2、安装
1、下载并解压,make进行编译
2、进入src目录,make install进行安装
3、启动
1、前台启动:src目录下,./redis-server
2、后台启动:修改daemonize no为yes,./redis-server ../redis.conf,使用指定配置文件启动
3、命令行连接客户端:./redis-cli -h 127.0.0.1 -p 6379 -a password
如虚拟机测试,主机连接需修改:
更改redis.conf 文件
bind 127.0.0.1
protected-mode yes
更改为
# bind 127.0.0.1
protected-mode no
4、redis数据类型
1、string:set/get
2、list:lpush key value/ lrange key range/
3、set:sadd key value(无序不可重复)/ smembers key(查询)
4、zset:zadd key score value(有序集合)
5、hash:hmset key name value
5、springboot整合redis
1、添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2、配置信息:
spring.redis.database=0
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=123456
spring.redis.pool.max-idle=8
spring.redis.pool.min-idle=0
spring.redis.pool.max-active=8
spring.redis.pool.max-wait=-1
spring.redis.timeout=5000
3、API
StringRedisTemplate
opsForValue().set()等一系列方法
6、redis高可用
1、主从复制
1、作用:数据备份,读写分离,集群,宕机容错
2、修改配置文件即可:
主节点:不用修改配置
从节点:slaveof(5.0.5中为 replicaof)
masterauth(根据配置文件提示即可)
2、哨兵机制(sentinel)
监控集群状态,选举master
结合使用keepalived监听,自动重启
1、配置文件:sentinel.conf
2、配置信息:
sentinel monitor mymast default-master-ip port 1 #主节点 名称 IP 端口号 选举次数(有几票成为主节点)
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 5000 心跳检测时间间隔
sentinel parallel-syncs mymaster 1 在发生failover主备切换时最多可以有多少个slave同时对新的master进行同步
./redis-server ../sentinel.conf --sentinel & 只启动一台即可
7、redis持久化
1、RDB持久化--redis默认
1、以二进制文件存储,非实时存储,文件小。
2、灾备时一般不选用此方法进行持久化
2、AOF持久化
1、实时存储,以日志文件方式存储,文件大
2、配置信息:开启 appendonly修改为yes
浙公网安备 33010602011771号