阿里云-centos7-單機(jī)安裝部署memcached--以及在IDEA中springboot項(xiàng)目調(diào)用和接收

環(huán)境信息

-購買操作系統(tǒng)選擇centos7(7的任何一個(gè)版本都可以)括饶,如果選錯(cuò)了可以在阿里云管理面板的-更多--云盤和鏡像--更換操作系統(tǒng)株茶。


image.png

在阿里云購買ecs-購買后機(jī)器網(wǎng)卡環(huán)境:
公網(wǎng)IP-8.134.80.143、內(nèi)網(wǎng)IP-172.30.40.95


image.png

設(shè)置阿里云端口映射:

開放1個(gè)端口
11211:memcached調(diào)用端口
配置入口-->安全組-->配置規(guī)則
點(diǎn)擊手動(dòng)添加图焰,添加11211端口

開始安裝

memcached 安裝比較簡單启盛,直接yum安裝完成。

yum -y install memcached


image.png

啟動(dòng)memcached

(停止直接kill掉進(jìn)程)

memcached -d -u root -l 0.0.0.0 -p 11211 -m 128


image.png

SpringBoot接入調(diào)用

引用

pom文件引入

<!--memcached-->
      <dependency>
            <groupId>com.googlecode.xmemcached</groupId>
            <artifactId>xmemcached</artifactId>
            <version>2.4.5</version>
        </dependency>

配置文件application.yaml 的memcached參數(shù)

內(nèi)容(8.134.80.143是阿里云公網(wǎng)IP):

memcache:
  server: 8.134.80.143:11211
  poolSize: 20
  sanitizeKeys: false
  opTimeout: 3000
image.png

創(chuàng)建memcached操作和測(cè)試類

屬性類-MemcachedProperties:


import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "memcache")
public class MemcachedProperties {

    private String server;

    private int poolSize;

    private boolean sanitizeKeys;

    private int opTimeout;

    public String getServer() {
        return server;
    }

    public void setServer(String server) {
        this.server = server;
    }

    public int getPoolSize() {
        return poolSize;
    }

    public void setPoolSize(int poolSize) {
        this.poolSize = poolSize;
    }

    public boolean isSanitizeKeys() {
        return sanitizeKeys;
    }

    public void setSanitizeKeys(boolean sanitizeKeys) {
        this.sanitizeKeys = sanitizeKeys;
    }

    public int getOpTimeout() {
        return opTimeout;
    }

    public void setOpTimeout(int opTimeout) {
        this.opTimeout = opTimeout;
    }
}

初始化注入實(shí)現(xiàn)類-MemcacheConfig:


import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.MemcachedClientBuilder;
import net.rubyeye.xmemcached.XMemcachedClientBuilder;
import net.rubyeye.xmemcached.command.BinaryCommandFactory;
import net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

@Component
public class MemcacheConfig {
    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    private MemcachedProperties memcachedProperties;

    //構(gòu)建builder
    @Bean
    public MemcachedClientBuilder getXMBuilder(){
        MemcachedClientBuilder memcachedClientBuilder = null;
        try {
            String server =memcachedProperties.getServer();
            memcachedClientBuilder= new XMemcachedClientBuilder(server);
            memcachedClientBuilder.setFailureMode(false);
            memcachedClientBuilder.setSanitizeKeys(memcachedProperties.isSanitizeKeys());
            memcachedClientBuilder.setConnectionPoolSize(memcachedProperties.getPoolSize());
            memcachedClientBuilder.setCommandFactory(new BinaryCommandFactory());
            memcachedClientBuilder.setOpTimeout(memcachedProperties.getOpTimeout());
            memcachedClientBuilder.setSessionLocator(new KetamaMemcachedSessionLocator());
            return  memcachedClientBuilder;
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }

    @Bean
    public MemcachedClient getXMClient(MemcachedClientBuilder builder){
        MemcachedClient client = null;
        try {
            client = builder.build();
            logger.info("MemcachedClient 創(chuàng)建成功 ");
            return client;
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }


}

memcached的controller測(cè)試類-MemcacheController:

import lombok.extern.slf4j.Slf4j;
import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.exception.MemcachedException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.concurrent.TimeoutException;

@Slf4j
@RestController
public class MemcacheController {

    @Autowired
    private MemcachedClient memCachedClient;

    private int cacheTime = 3600*4 ;
    @RequestMapping("cacheSend")
    public String send(String key,String info){
        log.info(info);
        try {
            memCachedClient.set(key, cacheTime, info);
        } catch (TimeoutException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (MemcachedException e) {
            e.printStackTrace();
        }
        return "cache成功";
    }

    @RequestMapping("cacheGet")
    public String get(String key){
        String info = "";
        try {
             info = memCachedClient.get(key);
        } catch (TimeoutException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (MemcachedException e) {
            e.printStackTrace();
        }
        return info;
    }
}
image.png

測(cè)試

啟動(dòng)項(xiàng)目,注入成功后會(huì)提示:MemcachedClient 創(chuàng)建成功


image.png

測(cè)試發(fā)送存儲(chǔ)數(shù)據(jù)
瀏覽器訪問:http://localhost:8080/cacheSend?key=current_id&info=2021011310101
測(cè)試存儲(chǔ)current_id:2021011310101到memcached技羔。

image.png

測(cè)試讀取數(shù)據(jù)
瀏覽器訪問:http://localhost:8080/cacheGet?key=current_id
測(cè)試讀取key=current_id的數(shù)據(jù)僵闯。

image.png

測(cè)試成功,部署調(diào)用完成藤滥。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鳖粟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拙绊,更是在濱河造成了極大的恐慌向图,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件标沪,死亡現(xiàn)場(chǎng)離奇詭異榄攀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)金句,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門檩赢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人违寞,你說我怎么就攤上這事贞瞒∨挤浚” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵憔狞,是天一觀的道長蝴悉。 經(jīng)常有香客問我,道長瘾敢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任尿这,我火速辦了婚禮簇抵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘射众。我一直安慰自己碟摆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布叨橱。 她就那樣靜靜地躺著典蜕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪罗洗。 梳的紋絲不亂的頭發(fā)上愉舔,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音伙菜,去河邊找鬼轩缤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛贩绕,可吹牛的內(nèi)容都是我干的火的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼淑倾,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼馏鹤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起娇哆,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤湃累,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后迂尝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脱茉,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年垄开,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了琴许。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡溉躲,死狀恐怖榜田,靈堂內(nèi)的尸體忽然破棺而出益兄,到底是詐尸還是另有隱情,我是刑警寧澤箭券,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布净捅,位于F島的核電站,受9級(jí)特大地震影響辩块,放射性物質(zhì)發(fā)生泄漏蛔六。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一废亭、第九天 我趴在偏房一處隱蔽的房頂上張望国章。 院中可真熱鬧,春花似錦豆村、人聲如沸液兽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽四啰。三九已至,卻和暖如春粗恢,著一層夾襖步出監(jiān)牢的瞬間柑晒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國打工适滓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留敦迄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓凭迹,卻偏偏與公主長得像罚屋,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嗅绸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容