滨江区建设局官方网站,wordpress迁移hexo,广告公司活动策划公司,不会写代码怎么做网站Memcached是一个开源、高性能#xff0c;将数据分布于内存中并使用key-value存储结构的缓存系统。它通过在内存中缓存数据来减少向数据库的频繁访问连接的次数#xff0c;可以提高动态、数据库驱动之类网站的运行速度。
Memcached在使用是比较简单的#xff0c;在操作上基本…Memcached是一个开源、高性能将数据分布于内存中并使用key-value存储结构的缓存系统。它通过在内存中缓存数据来减少向数据库的频繁访问连接的次数可以提高动态、数据库驱动之类网站的运行速度。
Memcached在使用是比较简单的在操作上基本就类似于操作字典结构的对象一样
1 添加依赖
这里需要添加上web、swagger和spymemcached的依赖Swagger是为了方便接口测试。
对于spymemcached的支持其实只要如下这个依赖包就可以了。
!-- https://mvnrepository.com/artifact/net.spy/spymemcached --
dependencygroupIdnet.spy/groupIdartifactIdspymemcached/artifactIdversion2.12.3/version
/dependency2 添加相关配置
2.1 添加swagger 配置
添加一个swagger 配置类在工程下新建 config 包并添加一个 SwaggerConfig 配置类除了常规配置外加了一个令牌属性可以在接口调用的时候传递令牌。
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;Configuration
EnableSwagger2
public class SwaggerConfig {Beanpublic Docket createRestApi(){return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.any()).paths(PathSelectors.any()).build();}private ApiInfo apiInfo(){return new ApiInfoBuilder().title(Swagger API Doc).description(This is a restful api document of Swagger.).version(1.0).build();}}2.2.在配置文件添加memcache的主机端口信息
application.properties
memcache.ip127.0.0.1
memcache.port11211application.yml
memcache:ip: 127.0.0.1port: 112112.3.添加一个MemcacheConfig配置类读取主机端口并构造一个MemcachedClient。
MemcacheConfig.java
import java.io.IOException;
import java.net.InetSocketAddress;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import net.spy.memcached.MemcachedClient;Configuration
public class MemcacheConfig {Value(${memcache.ip})private String ip;Value(${memcache.port})private int port;Beanpublic MemcachedClient getClient() {MemcachedClient memcachedClient null;try {memcachedClient new MemcachedClient(new InetSocketAddress(ip, port));} catch (IOException e) {e.printStackTrace();}return memcachedClient;}
}2.4 编写业务接口
编写一个业务控制器通过MemcachedClient实现对缓存的设置和读取。
MemcacheController.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import net.spy.memcached.MemcachedClient;
import net.spy.memcached.internal.OperationFuture;RestController
public class MemcacheController {private Logger logger LoggerFactory.getLogger(getClass());Autowiredprivate MemcachedClient memcachedClient;GetMapping(/info)public String memcacheGetValue() throws InterruptedException {// 取出缓存Object value memcachedClient.get(userName);logger.info(取出缓存 value);return 取出的值 value;}GetMapping(/save)public String saveValue(RequestParam String userName) throws InterruptedException {// 放入缓存, 过期时间为5000单位为毫秒OperationFutureBoolean flag memcachedClient.set(userName, 5000, userName);return 保存成功;}
}3 编译运行测试
3.1. 右键项目 - Run as - Maven install开始执行Maven构建第一次会下载Maven依赖可能需要点时间 3.2. 右键文件 DemoApplication.java - Run as - Java Application开始启动应用 3.3. 打开浏览器访问http://localhost:8899/swagger-ui.html进入swagger接口文档界面。
这里的端口根据具体的项目启动来查看我这里是 8899