今天依旧学习springboot整合cache,今天整合memcached。
首先开启memcached服务并导入相应的pom文件:
<dependency> <groupId>com.googlecode.xmemcached</groupId> <artifactId>xmemcached</artifactId> <version>2.4.7</version> </dependency>
接下来写入相关配置:
@Configuration public class XMemcachedConfig { @Autowired private XMemcachedProperties xMemcachedProperties; //配置可以设置很多,如果要设写入端口,连接池数量还要以下配置: @Bean public MemcachedClient getMemcachedClient() throws IOException { //写入端口 MemcachedClientBuilder memcachedClientBuilder = new XMemcachedClientBuilder(xMemcachedProperties.getServers()); //写入连接池数量,可忽略 memcachedClientBuilder.setConnectionPoolSize(xMemcachedProperties.getPoolSize()); //写入超时时间,可忽略 memcachedClientBuilder.setOpTimeout(xMemcachedProperties.getOpTimeout()); MemcachedClient memcachedClient = memcachedClientBuilder.build(); return memcachedClient; } }
接其他配置,如果只需要一个memcached的客户端,此处请略过:
在yml文件中写入相关配置:
memcached: # memcached服务器地址 servers: localhost:11211 # 连接池的数量 poolSize: 10 # 设置默认操作超时 opTimeout: 3000
封装成bean便于写入:
@Component @ConfigurationProperties(prefix = "memcached") //需要读取的配置对应yml文件中的memcached @Data //lombok依赖 public class XMemcachedProperties { private String servers; private int poolSize; private long opTimeout; }
此处为略过终点。
配置好后进行实际操作,这只是一部分代码:
@Autowired //注入服务端 private MemcachedClient memcachedClient; @Override public String sendCodeToSMS(String tel) { String code = codeUtils.generator(tel); try { memcachedClient.set(tel,0,code); //存入memcached缓存,第二个参数代表过期时间,0代表永不过期 } catch (Exception e) { e.printStackTrace(); } return code; }
欢迎大家一起来学习,有不足的地方还请指出。