一、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

 

 

posted on 2019-09-15 22:14  dysdhd  阅读(122)  评论(0)    收藏  举报