首页 > 其他分享 >Memcached 简单利用和简单了解(Mac的安装和使用)

Memcached 简单利用和简单了解(Mac的安装和使用)

时间:2022-10-18 15:00:09浏览次数:51  
标签:缓存 String Memcached bean Mac 简单 服务器 memcached pool

Memcached 是一种用于分布式应用的一种缓存机制。应用也比较广泛。这里来学习一下。


首先Memcached 是分布式网站架构都需要用到的缓存机制。缓存就是服务器利用多余的空间上开辟了一个储存空间,在这片储存区域中,我们放入key-value形式的数据。这样的话,前端发来的请求在这片缓存中如果可以得到解决,就不要去访问数据库了。在Web中,最耗费时间的操作就是去数据库中查询,取出数据。如果一个界面,每次都要加载固定的信息,这些信息储存在数据库中,那么每次很多用户同时加载,就要耗费很长时间,但是把这些数据放到缓存里面,每次拿去就很快,因为Memcached的效率是O(1)的。


好的,初步了解之后,就可以安装和使用了。


下面是Mac的安装方法:

用最简单的homebrew 来安装Memcached 十分的方便。


执行 brew install memcached 静静的等待安装成功就好了。

接下来在终端之中启动memcached


启动memcached 命令参数如下


memcached  启动服务器

memcached  启动服务器

-p 监听的端口
-l 连接的ip地址,默认是本机
-d start 启动memcached服务
-d stop|shutdown 关闭和正在运行的memcached服务
-d install 安装memcached服务
-u 以root身份运行
-m 最大内存的实用, 单位MB
-c 最大同时连接数
-h 显示帮助


 

Memcached 简单利用和简单了解(Mac的安装和使用)_缓存


 telnet 127.0.0.1 11211 连接服务。

我们可以用memcached 几个简单命令:


<command>  <key>  <flags>  <time> <bytes> 

<value>


command: set, add , replace

key : 健值

flags :健值对的整型参数,客户机使用它储存键值对的额外信息

time: 在缓冲中保存的时间,0代表永远

bytes : 在缓冲中的字节点

value : 储存的值


实际的例子:


Memcached 简单利用和简单了解(Mac的安装和使用)_服务器_02


那么如何在程序中使用呢?网上有两种版本,第一种版本

首先我们需要下载

java_memcached-release_2.5.3.jar 

导入之后:


package com.memcached;

import com.danga.MemCached.MemCachedClient;

import com.danga.MemCached.SockIOPool;
import com.sun.istack.internal.Pool;
import bean.testbean;

public class Memcached {

protected static MemCachedClient mcc = new MemCachedClient();

static{
//设置缓存服务器列表
String[] servers = {

"192.168.1.117:11211"

};

// 创建一个Socked连接池实例
SockIOPool pool = SockIOPool.getInstance();

Integer[] weights={3};
// 向连接池设置服务器和权重
pool.setServers(servers);
pool.setWeights(weights);

pool.setNagle(false);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0);

// initialize the connection pool
pool.initialize();

}

public static void main(String args[]){

testbean bean=new testbean();
bean.setName("lulu");
bean.setSex("girl");

mcc.set("person", bean);


mcc.set("name","chenyongkang");


testbean b =(testbean)mcc.get("person");

System.out.println("姓名:"+mcc.get("name"));
System.out.println("名字"+b.getName()+" 性别:"+b.getSex());
}

}

这里,memcached 也可以储存bean实体类。

实体类:


package bean;
import java.io.Serializable;

public class testbean implements Serializable{

private String name;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}


}


上面都是memcached 基本安装和使用。

那么如果我们在分布式架构中怎么使用呢?

1. 首先我们要知道memcached 的优势在哪里?如果单独一台服务器,单独的使用了memcached 。那么会得不偿失,速度反而被拖慢了。memcached 的优势是在分布式中。每一个分布式的服务器,都可以用特殊的算法去访问别的服务器中的缓存。这样利用分布式的服务器集群的多余内存,我们就可以发挥memcached的优势,建立一个有效的缓存机制。当然我们需要方法,让每个服务器了解,应该去找哪一台服务器中的缓存。

2.我们需要知道哪些数据可以用memcached缓存。

缓存只是用来储存常用信息,固定的信息。不要把数据库表整个存在缓存中,那样不是缓存的初衷,很多数据库也提供了缓存机制,所以无需用memcached.




标签:缓存,String,Memcached,bean,Mac,简单,服务器,memcached,pool
From: https://blog.51cto.com/u_15834522/5766706

相关文章

  • mac 安装 es m1
    brewinstallelasticsearchError:elasticsearchhasbeendisabledbecauseitisswitchingtoanincompatiblelicense.Checkout`opensearch`instead!brewi......
  • Go语言开发中 经常遇到的字符串处理 的一些简单小技巧
    Go语言开发中经常遇到的字符串处理的一些简单小技巧Go语言圈 2022-10-1808:30 发表于广东学习与交流:Go语言技术微信群商务合作加微信:LetsFenggoland全家桶激活......
  • POJ-1276-Cash Machine(多重背包)
    CashMachineTimeLimit:1000MSMemoryLimit:10000KTotalSubmissions:30568Accepted:11018DescriptionABankplanstoinstallamachineforca......
  • MacOS电脑上哪个音乐制作软件好用?
    MacOS电脑上哪个音乐制作软件最好用?下面为您带来了经典热门的音乐制作软件,功能强大,是当下现场音乐家包括工作室音乐人最为喜欢的音乐软件。MacOS电脑上好用的音乐制作软件......
  • Java基于解释器模式实现定义一种简单的语言功能示例
    本文实例讲述了Java基于解释器模式实现定义一种简单的语言功能。分享给大家供大家参考,具体如下:一模式定义解释器模式:就是给定一个语言的文法表示,并且定义一个解释器,用来......
  • tinymce富文本编辑器的简单使用及OSS直传
    1.安装tinymce依赖我的是vue2项目,指定版本"@tinymce/tinymce-vue":"^2.0.0","tinymce":"^5.0.3",npminstall@tinymce/tinymce-vue@2.0.0-Snpminstalltinymc......
  • 基于JQuery和思知对话机器人提供的API实现一个简单的对话聊天界面
    思知文档:https://www.ownthink.com/docs/bot/因为设计简单就直接上代码了,效果图在最后!1)界面实现html中body代码<body><divid="box"><!--顶部--><d......
  • java的简单了解
    java的简单了解Oracle有两个实现Java平台标准版(JavaSE)8的产品:JavaSE开发工具包(JDK)8和JavaSE运行时环境(JRE)8。JDK8是JRE8的超集,包含JRE8中的所有内容,以及......
  • 简单的clojure下socket server编程
    一、概述本文是简单的clojure下SocketServer编程,所谓的简单是:收发都是string,可以通过函数启动和关闭Server。所用的库为:aleph,项目地址:https://github.com/clj-commons/a......
  • MiniO Client(mc)简单使用指南
    #MinioClient简称mc,是minio服务器的客户端,对ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案,它支持文件系统和兼容AmazonS3的云存储服务(AWSSignaturev2和v4)......