参考这篇博文在本机安装了Memcached

在 Java 中常用的memcached有三个:

  • Memcached Client for Java
  • SpyMemcached
  • XMemcached

这里使用的是xmemcached

1.添加memcached依赖

        <!-- https://mvnrepository.com/artifact/com.googlecode.xmemcached/xmemcached -->
<dependency>
<groupId>com.googlecode.xmemcached</groupId>
<artifactId>xmemcached</artifactId>
<version>2.4.6</version>
</dependency>

2.Memcached增删查方法封装编写

 package com.example.memcached.service;

 import com.example.memcached.entity.Passenger;
import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.MemcachedClientBuilder;
import net.rubyeye.xmemcached.XMemcachedClient;
import net.rubyeye.xmemcached.XMemcachedClientBuilder;
import net.rubyeye.xmemcached.exception.MemcachedException;
import net.rubyeye.xmemcached.utils.AddrUtil;
import net.rubyeye.xmemcached.utils.InetSocketAddressWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.concurrent.TimeoutException; public class Memcached { protected static String ip = "localhost";
protected static String port = "11211";
/**失效时间(秒)3600*24 一天*/
protected int exptime = 3600 * 24; protected static MemcachedClient memcachedClient; public static MemcachedClient getMemcachedClient() throws IOException {
if (memcachedClient == null) {
MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses(ip + ":" + port));
memcachedClient = builder.build();
}
return memcachedClient;
} /**
* 设置缓存
* @return
*/
public boolean set(Passenger passenger) {
boolean result = false;
try {
result = getMemcachedClient().set(passenger.getName(), exptime, passenger);
} catch (TimeoutException | InterruptedException | MemcachedException | IOException e) {
//ignore
}
return result;
} /**
* 获取缓存
* @return
*/
public Passenger get(String key){
Passenger passenger = new Passenger();
try {
passenger = getMemcachedClient().get(key);
if (passenger == null) {
passenger = new Passenger();
passenger.setName(key);
passenger.setPassword("无值");
this.set(passenger);
}
} catch (TimeoutException | InterruptedException | MemcachedException | IOException e) {
passenger.setPassword("出错了");
}
return passenger;
} /**
* 删除缓存
* @param key
* @return
*/
public Boolean delete(String key) {
boolean result = false;
try {
result = getMemcachedClient().delete(key);
} catch (TimeoutException | InterruptedException | MemcachedException | IOException e) {
//ignore
}
return result;
}
}

3.示例对象类

import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serializable;

//必须实现Serializable接口,否则会报Non-serializable object的错
public class Passenger implements Serializable { private String name;
private String password; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
}
}

4.简单测试controller

 import com.example.memcached.service.Memcached;
import com.example.memcached.entity.Passenger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
@RequestMapping("/mem")
public class MemcachedController {
   //请求头图方便就这样了 
@RequestMapping("/insert/{name}/{password}")
public String insert(@PathVariable String name,@PathVariable String password) throws Exception {
Memcached memcached = new Memcached();
Passenger passenger = new Passenger();
passenger.setName(name);
passenger.setPassword(password);
Boolean set = memcached.set(passenger);
return set.toString();
} @RequestMapping("/query/{key}")
public String query(@PathVariable String key){
Memcached memcached = new Memcached();
Passenger passenger = memcached.get(key);
return passenger.getPassword();
}
}

结果:

1 添加键值,返回添加结果true

2 查询刚插入的键值的值成功,返回helloworld

Java连接Memcached进行CRUD的更多相关文章

  1. Java 连接 Memcached 服务

    原文:http://www.runoob.com/memcached/java-memcached.html mac下安装和配置Memcached:http://www.pchou.info/open ...

  2. Memcached常用语法与java连接服务

    memcached常用语法及java使用方式 Author:SimpleWu Memcached 存储命令 Memcached set 命令用于将 value(数据值) 存储在指定的 key(键) 中 ...

  3. Java进阶(二十五)Java连接mysql数据库(底层实现)

    Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...

  4. Java操作Memcached

    本文复制其他播客,有好的技术文章希望各位大神能告知... 谢谢. 如何使用Java操作Memcached实例: 代码一: package com.ghj.packageoftool; import j ...

  5. memcached—Java操作Memcached实例

    前面博客介绍了如何在Windows操作系统中安装Memcached,总结一下如何使用Java操作Memcached实例: 代码一: package com.ghj.packageoftool; imp ...

  6. Mongodb系列- java客户端简单使用(CRUD)

    Mongodb提供了很多的客户端: shell,python, java, node.js...等等. 以 java 为例实现简单的增删改查 pom文件: <dependencies> & ...

  7. springboot连接mongodb进行CRUD

    springboot连接mongodb进行CRUD的过程: 在执行以下操作前已安装了mongodb并创建了用户和数据库,使用Robo 3T可成功连接. 1.创建springboot项目,加入以下mav ...

  8. Java连接远程Redis

    redis-server &  //后台启动redis redis-cli //使用redis   打开redis.conf文件在NETWORK部分有说明   /usr/local/src   ...

  9. Java连接SQLServer2008终极解决办法(亲身上机演练版)

    今天我一学妹问我,Java连接SQLServer2008数据库的问题,一直无法连接成功.想起自己刚开始学习的时候,在网上找各种文章,然后实际上机验证操作,花了一两天时间才搞定,一把辛酸泪呀!记得当时是 ...

随机推荐

  1. Java Fibonacci 斐波那契亚

    Java Fibonacci 斐波那契亚 /** * <html> * <body> * <P> Copyright 1994-2018 JasonInternat ...

  2. 数据结构-平衡二叉树Java实现

    1,Node.java package com.cnblogs.mufasa.BalanceBinaryTree; public class Node { Node parent; Node left ...

  3. 异常信息:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed

    上周五遇到一个问题,工程本地编译运行正常,打包本地tomcat运行也正常.部署到测试环境报错: 2017-05-05 09:38:11.645 ERROR [HttpPoolClientsUtil.j ...

  4. 关于微信小程序发布新版本后的提示用户更新的方法详解

    当小程序发布新的版本后 ,用户如果之前访问过该小程序,通过已打开的小程序进入(未手动删除),则会检测新版本,提醒用户更新新的版本 话不多说,上代码 App({ onLaunch: function ( ...

  5. vue cli3 打包到tomcat上报错问题

    首先  项目打包步骤 1.vue config.js  添加 publicPath: './', // 公共路径 assetsDir:'static', 2.将代理注释掉 proxy 3.将hash需 ...

  6. 使用百度echarts仿雪球分时图(一)

    第一次写技术博客,有不足的地方希望大家指证出来,我再加以改正,谢谢大家. 之前一直没有找到一个合适的分时图项目,所以决定自己动手撸一个.接触的图表框架不多,在网上看到不少人推荐使用echarts,看了 ...

  7. 谷歌浏览器调试手机app内置网页

    当自己的H5项目内置于手机app内时,遇到了样式问题或者想查看H5页面代码.数据交互以及缓存等情况来检查数据,此时可以使用谷歌浏览器的控制台远程调试手机,步骤如下: 一.手机开启允许usb调试 二.手 ...

  8. 苹果发布app,上传ipa,不显示问题

    用Xcode或者leader上传ipa,提示是上传成功,但是在网页上不显示构建版本.如下图: 那么,你先点击“活动”,进去后,如果显示你的app正在审核,那么表示上传成功,等待:如果“活动”中不显示你 ...

  9. 十年阿里顶级架构师教你怎么使用Java来搭建微服务

    微服务背后的大理念是将大型.复杂且历时长久的应用在架构上设计为内聚的服务,这些服务能够随着时间的流逝而演化.本文主要介绍了利用 Java 生态系统构建微服务的多种方法,并分析了每种方法的利弊. 快速预 ...

  10. JDK8 dockerfile

    # AlpineLinux with a glibc-2.28-r0 and Oracle Java 8FROM hub.devops.docker.com/library/alpine-glibc: ...