http://www.ityouknow.com/springboot/2018/09/01/spring-boot-memcached.html

Memcached 介绍

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

因为 Spring Boot 没有针对 Memcached 提供对应的组建包,因此需要我们自己来集成。官方推出的 Java 客户端 Spymemcached 是一个比较好的选择之一。

Spymemcached 介绍

Spymemcached 最早由 Dustin Sallings 开发,Dustin 后来和别人一起创办了 Couchbase (原NorthScale),职位为首席架构师。2014 加入 Google。

Spymemcached 是一个采用 Java 开发的异步、单线程的 Memcached 客户端, 使用 NIO 实现。Spymemcached 是 Memcached 的一个流行的 Java client 库,性能表现出色,广泛应用于 Java + Memcached 项目中。

依赖配置

添加依赖

pomx 包中添加 spymemcached 的引用

<dependency><groupId>net.spy</groupId><artifactId>spymemcached</artifactId> <version>2.12.2</version> </dependency> 

添加配置

memcache.ip=192.168.0.161
memcache.port=11211

分别配置 memcache 的 Ip 地址和 端口。

设置配置对象

创建 MemcacheSource 接收配置信息

@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; } } 

@ConfigurationProperties(prefix = "memcache") 的意思会以 memcache.* 为开通将对应的配置文件加载到属性中。

启动初始化 MemcachedClient

我们使用上一节的内容Spring Boot 2 (七):Spring Boot 如何解决项目启动时初始化资源,利用 CommandLineRunner 在项目启动的时候配置好 MemcachedClient 。

@Component
public class MemcachedRunner implements CommandLineRunner { protected Logger logger = LoggerFactory.getLogger(this.getClass()); @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) { logger.error("inint MemcachedClient failed ",e); } } public MemcachedClient getClient() { return client; } } 

测试使用

@RunWith(SpringRunner.class) @SpringBootTest public class RepositoryTests { @Resource private MemcachedRunner memcachedRunner; @Test public void testSetGet() { MemcachedClient memcachedClient = memcachedRunner.getClient(); memcachedClient.set("testkey",1000,"666666"); System.out.println("*********** "+memcachedClient.get("testkey").toString()); } } 

使用中先测试插入一个 key 为 testkey ,1000 为过期时间单位为 毫秒,最后的 “666666” 为 key 对应的值。

执行测试用例 testSetGet ,控制台输出内容:

***********  666666

表明测试成功。

示例代码-github

示例代码-码云

转载于:https://www.cnblogs.com/telwanggs/p/10701630.html

(转)Spring Boot 2 (八):Spring Boot 集成 Memcached相关推荐

  1. Spring boot(八):RabbitMQ详解

    RabbitMQ介绍 RabbitMQ既一个消息队列,主要用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用. 消息中间件在互联网公司的使用中越来越多.消息中间件最主要的作用是解耦,中 ...

  2. Spring Boot 集成 Memcached

    Spring Boot 集成 Memcached Memcached 介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来 ...

  3. Spring Boot - Thymeleaf模板简介以及集成

    文章目录 Spring Boot - Thymeleaf模板简介以及集成 1.什么是Thymeleaf? 2.标准表达式 2.1 变量表达式 2.2 选择表达式/星号表达式 2.3 URL表达式 2. ...

  4. 搭建Spring Boot2.X集成Hibernate5项目,并集成传统SSH老项目的安全认证组件,以Spring Boot方式开发项目并集成到老系统

    搭建Spring Boot2.X集成Hibernate5项目,并集成传统SSH老项目的安全认证组件,以Spring Boot方式开发项目并集成到老系统 场景 可行性分析 搭建Spring Boot集成 ...

  5. Spring Boot入门三:创建Spring Boot项目;(包括【Spring 官网start.spring.io】方式,【IDEA集成的Spring Initializr】方式)

    说明: (1)介绍了两种创建Spring Boot项目的方式:[Spring 官网start.spring.io]方式,[IDEA集成的Spring Initializr]方式: (2)更推荐使用[I ...

  6. Spring Boot(十二)集成spring-boot-starter-mail发送邮件

    项目GitHub地址 : https://github.com/FrameReserve/TrainingBoot Spring Boot(十二)集成spring-boot-starter-mail发 ...

  7. 《Spring Boot 实战派》--10.集成安全框架,实现安全 认证和授权

    第10章 集成安全框架,实现安全 认证和授权 本章首先介绍如何使用Spring Security创建独立验证的管理员权限系统.会员系统,讲解如 何进行分表.分权限' 分登录入口.分认证接口.多注册接口 ...

  8. spring boot +mybatis(通过properties配置) 集成

    注:日常学习记录贴,下面描述的有误解的话请指出,大家一同学习. 因为我公司现在用的是postgresql数据库,所以我也用postgresql进行测试 一.前言 1.Spring boot 会默认读取 ...

  9. Spring Boot(二): 集成Mybatis

    上一篇讲述了什么是Spring Boot.如何创建Sping Boot项目以及如何通过配置修改端口号: 本篇将讲述Spring Boot与Mybatis的整合过程. 一.添加mybatis以及mysq ...

  10. Spring Boot——开发新一代Spring Java应用

    2019独角兽企业重金招聘Python工程师标准>>> Spring官方网站本身使用Spring框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Be ...

最新文章

  1. mongodb3.0的权限认证问题
  2. 软件测试艺术一:程序正确性证明
  3. deepin ubuntu修改grub启动延时时间
  4. [Python图像处理] 十九.图像分割之基于K-Means聚类的区域分割
  5. 求数组的最大值php,求PHP数组最大值,最小值的代码
  6. 利用Spring解耦VS的WebService
  7. idea中java没有run_idea 右键项目没有run 运行选项
  8. 中国移动试商用GPS手机导航业务 包月资费15元
  9. 一步步学习SPD2010--第四章节--创建和修改网页(9)--附上母版页
  10. 深入理解Javascript之this关键字
  11. extentreports报告插件与testng集成(二)
  12. 如何在vue中使用less
  13. 专业视频压制神器下载——解决会声会影、PR、AE处理视频后过大的问题(三款工具)专业视频压制软件
  14. 小程序源码:全新实用工具证件照制作微信小程序源码下载支持多种证件生成与制作
  15. latex怎么改字体大小_latex更改字体 latex局部字体大小
  16. Android平台压缩纹理ETC2 VS ASTC
  17. 计算机控制中的pid是什么意思,PID 是什么意思
  18. c++复习——侯捷版
  19. 基于PG与PostGIS搭建实时矢量瓦片服务
  20. 第四周项目2--建立”单链表“算法库

热门文章

  1. sql 2008 每次打开一个表都要登录_如何实现一个简易的orm
  2. c语言头文件_C语言学习之头文件的原理和使用方法
  3. 用户态程序阻塞原因_进程阻塞 操作系统某种情况进行进程的阻塞和唤醒操作...
  4. go语言特性理解--变量/函数/面向对象/并发编程/错误处理
  5. Nginx之升级和构建后添加新的模块
  6. shiro访问html没有验证码,Shiro在web应用中实现验证码、回显登录失败信息
  7. onenote快捷键_onenote链接系列:链接笔记如何产生?与插入链接的区别
  8. python 连接mysql_使用MySQL
  9. oracle中master实例,Oracle10g/11g RAC数据库中的Master实例、Owner实例和Past Image的概念PART2...
  10. Nginx基本数据结构之ngx_hash_wildcard_t