Spring Boot 缓存应用 Memcached 入门教程
本章学习 Mmecached 在 Spring Boot 中的使用教程。Memcached 与 Redis 各有好处。本文主要学习 Spring Boot 中如何应用集成 Mmecached
- spring boot 1.5.x/2.x
- memcached
- jdk 1.8+
1 安装 memcached
window 下安装比较方便,直接 双击 exe 安装文件即可;
mac 下安装使用命令行安装
brew install libmemcached
brew install memcached
rew services start memcached
注意,如果遇到 update .... 需要等待很久的,就请按组合键 command+c 取消brew的更新,直接执行命令。
2 新建 Spring Boot Maven 示例工程项目
注意:是用来 IDEA 开发工具
- File > New > Project,如下图选择
Spring Initializr然后点击 【Next】下一步 - 填写
GroupId(包名)、Artifact(项目名) 即可。点击 下一步
groupId=com.fishpro
artifactId=memcached - 选择依赖
Spring Web Starter前面打钩。 - 项目名设置为
spring-boot-study-memcached.
3 引入依赖 Pom
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/net.spy/spymemcached add by fishpro at 2019-08-07-->
<dependency>
<groupId>net.spy</groupId>
<artifactId>spymemcached</artifactId>
<version>2.12.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
4 配置 Memcached 对 MemcachedClient进行初始化
MemcacheConfig 路径 src/main/java/com/fishpro/memcached/config/RedisController(路径.java)
package com.fishpro.memcached.config;
import net.spy.memcached.MemcachedClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.io.IOException;
import java.net.InetSocketAddress;
@EnableCaching
@Configuration
public class MemcacheConfig extends CachingConfigurerSupport {
@Value("${memcached.port}")
private Integer port;
@Value("${memcached.ip}")
private String ip;
@Bean
public MemcachedClient memcachedClient(){
try {
return new MemcachedClient(new InetSocketAddress(ip,port));
}catch (IOException e){
e.printStackTrace();
return null;
}
}
}
5 编写RestController测试代码
不太习惯使用单元测试,这里给出 RestController 的测试代码
| 方法 | 作用 |
|---|---|
| set(key,value) | 向key中添加值如果存就替换 |
| add(key,value) | 向key中添加值如果存在就不替换 |
| replace(key,value) | 替换缓存key的值为value |
| delete(key) | 删除缓存key的值 |
注意生效时间单位秒
@RestController
public class UserController {
@Autowired
private MemcachedClient memcachedClient;
@RequestMapping("/test")
public String test(){
System.out.println("======set/get 方式演示===============================");
memcachedClient.set("FPCACHE",3,"THIS IS TEST 这是测试");
System.out.println("设置与读取 FPCACHE 值:"+memcachedClient.get("FPCACHE"));
memcachedClient.set("FPCACHE",3,"使用SET添加到一个存在的值的缓存");
System.out.println("再次读取 FPCACHE 值:"+memcachedClient.get("FPCACHE"));
System.out.println("======add 方式演示===============================");
memcachedClient.add("FPCACHE",3,"使用ADD添加到一个存在的值的缓存");
System.out.println("再次读取 FPCACHE 值:"+memcachedClient.get("FPCACHE"));
memcachedClient.add("FPCACHE2",3,"使用ADD添加到新的缓存键FPCACHE2中");
System.out.println("再次读取 FPCACHE2 值:"+memcachedClient.get("FPCACHE2"));
System.out.println("======replace 方式演示===============================");
memcachedClient.replace("FPCACHE",3,"使用Replace替换FPCACHE键对应的缓存值");
System.out.println("replace方式读取 FPCACHE 值:"+memcachedClient.get("FPCACHE"));
try {
Thread.sleep(3001);
}catch (Exception ex){}
System.out.println("3秒过后再次获取缓存 FPCACHE: "+memcachedClient.get("FPCACHE"));
System.out.println("======delete 方式演示===============================");
memcachedClient.delete("FPCACHE");
System.out.println("replace方式读取 FPCACHE 值:"+memcachedClient.get("FPCACHE"));
return "";
}
}
6 运行示例
右键 MemcachedApplication 选择 Run MemcachedApplication 在浏览器中输入 http://localhost:8080/test
Spring Boot 缓存应用 Memcached 入门教程的更多相关文章
- Spring Boot 缓存应用 Ehcache 入门教程
Ehcache 小巧轻便.具备持久化机制,不用担心JVM和服务器重启的数据丢失.经典案例就是著名的Hibernate的默认缓存策略就是用Ehcache,Liferay的缓存也是依赖Ehcache. 本 ...
- Spring Boot 2.0.1 入门教程
简介 Spring Boot是Spring提供的一套基础配置环境,可以用来快速开发生产环境级别的产品.尤其适合开发微服务架构,省去了不少配置麻烦.比如用到Spring MVC时,只需把spring-b ...
- spring boot集成redis基础入门
redis 支持持久化数据,不仅支持key-value类型的数据,还拥有list,set,zset,hash等数据结构的存储. 可以进行master-slave模式的数据备份 更多redis相关文档请 ...
- Spring Boot 2.x 快速入门(下)HelloWorld示例详解
上篇 Spring Boot 2.x 快速入门(上)HelloWorld示例 进行了Sprint Boot的快速入门,以实际的示例代码来练手,总比光看书要强很多嘛,最好的就是边看.边写.边记.边展示. ...
- Spring Boot 单元测试详解+实战教程
Spring Boot 的测试类库 Spring Boot 提供了许多实用工具和注解来帮助测试应用程序,主要包括以下两个模块. spring-boot-test:支持测试的核心内容. spring-b ...
- Spring boot缓存初体验
spring boot缓存初体验 1.项目搭建 使用MySQL作为数据库,spring boot集成mybatis来操作数据库,所以在使用springboot的cache组件时,需要先搭建一个简单的s ...
- Spring Boot缓存Ehcache
Spring Boot 整合 Ehcache 修改 pom 文件 <!-- Spring Boot 缓存支持启动器 --> <dependency> <groupId ...
- 3步轻松搞定Spring Boot缓存
作者:谭朝红 前言 本次内容主要介绍基于Ehcache 3.0来快速实现Spring Boot应用程序的数据缓存功能.在Spring Boot应用程序中,我们可以通过Spring Caching来快速 ...
- Spring Boot:使用Memcached缓存
综合概述 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统.Memcached基于内存的key-value存储,用来存储小块的任意数据,这些数据可以是数据库调用.API调用或者是页面 ...
随机推荐
- AcWing 3. 完全背包问题
朴素 #include<iostream> #include<algorithm> using namespace std ; ; int n,m; int v[N],w[N] ...
- Module build failed: TypeError: this.getResolve is not a function at Object.loader sass报错!(亲测有效!~~)
vue安装node-sass编译报错 在搭建vue脚手架 或者是在vue项目中,想使用sass的功能,需先安装如下 npm install node-sass --save-dev //安装node- ...
- java基础(七)之子类实例化
知识点;1.生成子类的过程2.使用super调用父类构造函数的方法 首先编写3个文件. Person.java class Person{ String name; int age; Person() ...
- Qt入门-表格类QTableWidget
原文 :http://blog.csdn.net/xgbing/article/details/7774737 表格是GUI中常用的控件,在Qt中,常用的表格类是QTableWidget. 示例: Q ...
- 拓扑排序(poj 1094)
前置知识:拓扑排序 详细注释都在代码里 //该题题意明确,就是给定一组字母的大小关系判断他们是否能组成唯一的拓扑序列. //是典型的拓扑排序,但输出格式上确有三种形式: // 1.该字母序列有序,并依 ...
- 题解【洛谷P2619】[国家集训队2]Tree I
题目描述 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有\(need\)条白色边的生成树. 题目保证有解. 输入输出格式 输入格式 第一行\(V,E,need\)分别表示点数,边 ...
- 压缩/批量压缩/合并js文件
写在前面 如果文件少的话,直接去网站转化一下就行. http://tool.oschina.net/jscompress?type=3 1.压缩单个js文件 cnpm install uglify-j ...
- 【Python collections】
目录 namedtuple deque Counter OrderedDict defaultdict "在内置数据类型(dict.list.set.tuple)的基础上,collectio ...
- Java 前加加和后加加 总结
public class Test { public static void main(String[] args) { int age = 6; //先自加,再使用(age先自加1,然后再打印age ...
- Azure IoT Hub 十分钟入门系列 (4)- 实现从设备上传日志文件/图片到 Azure Storage
本文主要分享一个案例: 10分钟内通过Device SDK上传文件到IoTHub B站视频:https://www.bilibili.com/video/av90224073/ 本文主要有如下内容: ...