Memcached be connected Java CRUD

Refer to this post in the machine installed Memcached

There are three commonly used in Java memcached:

  • Memcached Client for Java
  • SpyMemcached
  • XMemcached

As used herein, is xmemcached

1. Add a memcached dependent

        <!-- 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 deletions search method of packaging prepared

 1 package com.example.memcached.service;
 2 
 3 import com.example.memcached.entity.Passenger;
 4 import net.rubyeye.xmemcached.MemcachedClient;
 5 import net.rubyeye.xmemcached.MemcachedClientBuilder;
 6 import net.rubyeye.xmemcached.XMemcachedClient;
 7 import net.rubyeye.xmemcached.XMemcachedClientBuilder;
 8 import net.rubyeye.xmemcached.exception.MemcachedException;
 9 import net.rubyeye.xmemcached.utils.AddrUtil;
10 import net.rubyeye.xmemcached.utils.InetSocketAddressWrapper;
11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Component;
13 
14 import java.io.IOException;
15 import java.net.InetSocketAddress;
16 import java.util.concurrent.TimeoutException;
17 
18 public class Memcached {
19 
20     protected static String ip = "localhost";
21     protected static String port = "11211";
22     /**失效时间(秒)3600*24 一天*/
23     protected int exptime = 3600 * 24;
24 
25     protected static MemcachedClient memcachedClient;
26 
27     public static MemcachedClient getMemcachedClient() throws IOException {
28         if (memcachedClient == null) {
29             MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses(ip + ":" + port));
30             memcachedClient = builder.build();
31         }
32         return memcachedClient;
33     }
34 
35     /**
36      * 设置缓存
37      * @return
38      */
39     public boolean set(Passenger passenger) {
40         boolean result = false;
41         try {
42             result = getMemcachedClient().set(passenger.getName(), exptime, passenger);
43         } catch (TimeoutException | InterruptedException | MemcachedException | IOException e) {
44             //ignore
45         }
46         return result;
47     }
48 
49     /**
50      * 获取缓存
51      * @return
52      */
53     public Passenger get(String key){
54         Passenger passenger = new Passenger();
55         try {
56             passenger = getMemcachedClient().get(key);
57             if (passenger == null) {
58                 passenger = new Passenger();
59                 passenger.setName(key);
60                 passenger.setPassword("无值");
61                 this.set(passenger);
62             }
63         } catch (TimeoutException | InterruptedException | MemcachedException | IOException e) {
64             passenger.setPassword("出错了");
65         }
66         return passenger;
67     }
68 
69     /**
70      * 删除缓存
71      * @param key
72      * @return
73      */
74     public Boolean delete(String key) {
75         boolean result = false;
76         try {
77             result = getMemcachedClient().delete(key);
78         } catch (TimeoutException | InterruptedException | MemcachedException | IOException e) {
79             //ignore
80         }
81         return result;
82     }
83 }
View Code

Example 3. Object Class

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. simple test controller

 1 import com.example.memcached.service.Memcached;
 2 import com.example.memcached.entity.Passenger;
 3 import org.springframework.stereotype.Controller;
 4 import org.springframework.web.bind.annotation.PathVariable;
 5 import org.springframework.web.bind.annotation.RequestMapping;
 6 import org.springframework.web.bind.annotation.RestController;
 7 
 8 @RestController
 9 @RequestMapping("/mem")
10 public class MemcachedController {
11    //请求头图方便就这样了 
12     @RequestMapping("/insert/{name}/{password}")
13     public String insert(@PathVariable String name,@PathVariable String password) throws Exception {
14         Memcached memcached = new Memcached();
15         Passenger passenger = new Passenger();
16         passenger.setName(name);
17         passenger.setPassword(password);
18         Boolean set = memcached.set(passenger);
19         return set.toString();
20     }
21 
22     @RequestMapping("/query/{key}")
23     public String query(@PathVariable String key){
24         Memcached memcached = new Memcached();
25         Passenger passenger = memcached.get(key);
26         return passenger.getPassword();
27     }
28 }

result:

1 add the key, return the result of adding true

2 query just inserted the key-value succeeds, the return helloworld

 

Guess you like

Origin www.cnblogs.com/new-life/p/11117769.html