SpringBoot整合Hazelcast实现分布式缓存

一. 分布式缓存代码实现步骤

1. 创建web项目

我们按照之前的经验,创建一个web程序,并将之改造成Spring Boot项目,具体过程略。

SpringBoot整合Hazelcast实现分布式缓存_第1张图片

2. 添加依赖包


    com.hazelcast
    hazelcast


    com.hazelcast
    hazelcast-spring

3. 创建application.yml配置文件

创建application.yml配置文件,可以在这里设置服务器端口号。

server:
  port: 8081

4. 添加Hazelcast配置类

package com.yyg.boot.config;

import com.hazelcast.config.*;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.IMap;
import com.hazelcast.core.ITopic;
import com.yyg.boot.interceptor.IMapInterceptor;
import com.yyg.boot.interceptor.MapListener;
import com.yyg.boot.interceptor.TopicListener;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Author 一一哥Sun
 * @Date Created in 2020/4/23
 * @Description Description
 */
@Configuration
public class HazelcastConfiguration {

    @Bean
    public Config hazelCastConfig() {
        Config config = new Config();
        //解决同网段下,不同库项目
        GroupConfig gc=new GroupConfig("hazelGroup");
        config.setInstanceName("hazelcast-instance")
                .addMapConfig(new MapConfig()
                                .setName("configuration")
                                // Map中存储条目的最大值[0~Integer.MAX_VALUE]。默认值为0。
                                .setMaxSizeConfig(new MaxSizeConfig(200, MaxSizeConfig.MaxSizePolicy.FREE_HEAP_SIZE))
                                 //数据释放策略[NONE|LRU|LFU]。这是Map作为缓存的一个参数,用于指定数据的回收算法。默认为NONE。LRU:“最近最少使用“策略。
                                .setEvictionPolicy(EvictionPolicy.LRU)
                                //数据留存时间[0~Integer.MAX_VALUE]。缓存相关参数,单位秒,默认为0。
                                .setTimeToLiveSeconds(-1))
                                .setGroupConfig(gc);
        return config;
    }
}

关于配置说明

eviction-policy

数据释放策略[NONE|LRU|LFU]。这是Map作为缓存的一个参数,用于指定数据的回收算法,默认为NONE。
  • NONE:当设置为NONE时,不会发生数据回收,同时max-size会失效。但是任然可以使用time-to-live-seconds和max-idle-seconds参数来控制数据留存时间。
  • LRU:“最近最少使用“策略。
  • LFU:“最不常用的使用”策略。

time-to-live-seconds(TTL)

数据留存时间[0~Integer.MAX_VALUE]。缓存相关参数,单位秒,默认为0。这个参数决定了一条数据在map中的停留时间。当数据在Map中留存超过这个时间并且没有被更新时,它会根据指定的回收策略从Map中移除。值为0时,意味着无求大。

4. 创建Controller接口方法

package com.yyg.boo

你可能感兴趣的:(个人技术分享)