参考这篇博文在本机安装了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. (九)SpringBoot之错误处理

    一.错误处理方法 1.Spring Boot 将所有的错误默认映射到/error, 实现ErrorController 2.添加自定义的错误页面   二.Spring Boot 将所有的错误默认映射到 ...

  2. Windows 服务 安装后自启动

    [RunInstaller(true)] public partial class ProjectInstaller : System.Configuration.Install.Installer ...

  3. java 框架-缓冲-Redis 2Jedis操作

    https://www.cnblogs.com/wlandwl/p/redis.html Redis介绍及Jedis基础操作   1.Redis简介 Redis 是一个开源(BSD许可)的,内存中的数 ...

  4. 通用http状态码

    400:Bad Request 表示客户端发出的请求不支持或无法识别,这通常是并未使用正确的请求语法.例如post或者put请求中资源的某个字段被设置为空的话,这将会导致一个Bad Request响应 ...

  5. 【算法】php实现排序(一)

    选择排序方式:先让第一位与其他位比较大小找到最小的数字,然后是第二位与除第一位的其他位比较大小找出第二位,依此类推 $arr = [2,45,12,67,33,5,23,132,46]; for ($ ...

  6. Linux--CentOS 安装 Docker 教程

    本文主要介绍 CentOS 系统安装 Docker 的流程. 前提条件 OS 要求 CentOS7: The centos-extras repository must be enabled. Thi ...

  7. 微信小程序tabBar与redirectTo 或navigateTo冲突

    微信小程序tabBar与redirectTo 或navigateTo冲突 tabBar设置的pagePath无法再次被redirectTo或navigateTo引用 导致跳转失败,更改为swithTa ...

  8. CRM和C4C里的组织架构 - Organizational Structure

    CRM(WebClient UI) CRM(SAP GUI,事务码PPOMA_CRM) C4C 以列表方式显示: 以图形方式显示: UI模型: /SAP_BYD_APPLICATION_UI/mom/ ...

  9. kbmMW 5.10.01试用报告

    1.FileClient.SameFile 调用这个方法,当本地文件不存在时,会一直等待.跟踪代码,发现: function TkbmMWCustomFileClient.SameFileEx(Loc ...

  10. Oracle查询表空间使用情况的一个sql

    select  t1.tablespace_name,curr_b/1024/1024/1024,max_b/1024/1024/1024,curr_b/max_b from(select table ...