springboot系列20: Memcached初体验

      今天谈谈一篇关于memcached的内容。Memcached 是一个高性能的分布式内存对象缓存系统。是基于内存存储键值对的hashmap,下面动手在springboot工程中搭建起来。 

首先我们需要安装 memcached (获取安装包地址,请在公众号回复关键字‘memcached’--此处怀疑是广告,但又没有证据^V^ ) 。 

因本地是windows,下载下来直接解压,运行exe文件即可

 

 

 

接下来,在springboot项目pom.xml文件引入相关jar包。

   <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>net.spy</groupId>
            <artifactId>spymemcached</artifactId>
            <version>2.12.2</version>
        </dependency>
    </dependencies>

 

在 application.properties 配置memcached的相关属性

memcache.ip=127.0.0.1
memcache.port=11211

 

/**
 * @version 1.0
 * @description: 获取配置文件参数
 * @date 2020-09-14 19:23
 */
@Component
@ConfigurationProperties(prefix = "memcache")
public class MemcacheSource {

    private String ip;
    private int port;

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

}

         因初始化需要在项目启动时操作,故用到了上两篇的知识点,不熟悉的小伙伴可以翻一翻之前的文章。

/**
 * @version 1.0
 * @description: 初始化memcached相关配置
 * @date 2020-09-16 19:27
 */
@Component
@Slf4j
public class MemcachedRunner implements CommandLineRunner {

    @Resource
    private MemcacheSource memcacheSource;

    private MemcachedClient client = null;

    @Override
    public void run(String... args) throws Exception {
        try {
            client = new MemcachedClient(new InetSocketAddress(memcacheSource.getIp(),memcacheSource.getPort()));
        } catch (IOException e) {
            log.error("inint MemcachedClient failed ",e);
        }
    }

    public MemcachedClient getClient() {
        return client;
    }
}

 

处理到这,相关的环境搭建就已经可以了,下面写个测试类来验证下是否有效,缓存数据。

@RunWith(SpringRunner.class)
@SpringBootTest
public class MemcachedTest {
    @Resource
    private MemcachedRunner memcachedRunner;

    @Test
    public void testSetGet()  {
        MemcachedClient memcachedClient = memcachedRunner.getClient();        
        memcachedClient.set("tel",1000,"13128600812");
        System.out.println("作者微信号:" + memcachedClient.get("tel"));
    }
}

 运行结果如下(若有小伙伴需要定制软件,可以联系我,下方微信号真实有效,童叟无欺)

 

 

 

posted @ 2022-01-13 19:54  IT6889  阅读(114)  评论(0编辑  收藏  举报