Memcached缓存

本文详细介绍了Memcached——一个高性能的分布式内存对象缓存系统。内容包括Memcached的基本概念、优缺点、安装步骤以及Java客户端的使用方法,通过实例展示了如何在应用中添加、获取和管理缓存数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Memcached介绍

  •  Memcached是一个免费开源、高性能、分布式的内存对象缓存系统。
  •  Memcached是在内存中,为特定数据(字符串或对象)构建    key-value的小块数据存储。

2.Memcached优点

  •   读写性能优异,特别是高并发时和文件缓存比有明显优势。
  •   Memcache组建支持集群,并且是自动管理负载均。

3.Memcached缺点

  • 缓存空间有限:据说一台电脑的mem缓存开到2g以上会出现不稳定,数据无故丢失的现象。  
  • 掉电丢失数据:由于是把数据放在内存里的,所有一旦机器掉电,数据也就全部丢失了

微笑  一般建议:如果是做内容缓存的话,比如把一些不经常更改的文章放在文件缓存里比较合适,

       而mem则适合放一些频繁更改的数据,比如可以把session数据放进mem

4.Memcached下载安装

  • 下载memcached_en32or64.zip
  • 进行解压到:(举例:E:\memcached)
  • 在控制台输入命令安装E:\memcached\memcached.exe -d install
  • 启动:E:\memcached\memcached.exe -d start或者 net startmemcached Server”

5.Memcached实践

(1)创建Java项目整个项目如图(第一种方法)

(2)创建包和类,在Demo1写入代码编写Memcached的客户端

public class Demo1 {

   public static void main(String[]args) {

 //获取socke连接池的实列对象

       SockIOPool pool=SockIOPool.getInstance();

       //服务器列表和其权重

       String[] servers={"127.0.0.1:11211"};

       Integer[] weights={3};

       //设置服务器信息

   pool.setServers(servers);

   pool.setWeights(weights);

   //初始化连接池

   pool.initialize();

   /*client.setCompressEnable(true);

   client.setCompressThreshold(64 * 1024);*/

   MemCachedClient client =new MemCachedClient();

   //添加

   client.add("school","八维");

   }

}

(3)测试类Test1

public class Test1{

  public static void main(String[]args) {

  //获取socke连接池的实列对象

       SockIOPool pool=SockIOPool.getInstance();

       //服务器列表和其权重11211为默认端口号

       String[] servers={"127.0.0.1:11211"};

       Integer[] weights={3};

       //设置服务器信息

   pool.setServers(servers);

   pool.setWeights(weights);

   //初始化连接池

   pool.initialize();

  MemCachedClient client =new    MemCachedClient();

//取值

  Object object =client.get("school");

  System.out.println(object);

}

}

(4)效果展示

(1)创建Java项目整个项目图如下(第二种方法)

(2)创建包和类,在Demo1种写入代码编写Memcached的客户端

public class Demo1 {

  public static void main(String[] args) {

  //实现 IP 套接字地址(IP 地址 + 端口号)

InetSocketAddress ins = new InetSocketAddress("127.0.0.1",11211);

    try {

MemcachedClient client = new MemcachedClient(ins);

     //第一个参数:键(key)

     //第二个参数:过期时间(单位是秒)

     //第三个参数:要设置缓存中的对象(value)如果没   有插入,有则修改

//client.add("name", 3600, "李倩倩");

//client.add("name1", 60, "周杰伦");

client.add("dog", 3600, "笨笨");

     //当时间过期后再次取值时为null

} catch (IOException e) {

e.printStackTrace();

}

  }

}

(3)测试类Test1

public class Demo2 {

  public static void main(String[] args) {

//实现 IP 套接字地址(IP 地址 + 端口号)

InetSocketAddress ins = new InetSocketAddress("127.0.0.1",11211);

    try {

MemcachedClient client = new MemcachedClient(ins);

//获取

Object object = client.get("dog");

System.out.println(object);

} catch (Exception e) {

e.printStackTrace();

}

  }

}

(4)效果展示

(5)Demo2类测试

public class Demo2 {

  public static void main(String[] args) {

try {

      //实现 IP 套接字地址(IP 地址 + 端口号)

    InetSocketAddress ins = new InetSocketAddress("127.0.0.1",11211);

MemcachedClient client = new MemcachedClient(ins);

CASValue<Object> gets = client.gets("dog");

CASValue<Object> gets1 = client.gets("dog");

System.out.println(gets.getValue()+""+gets.getCas());

System.out.println(gets1.getValue()+""+gets.getCas());

} catch (Exception e) {

e.printStackTrace();

}

  }

}

(5)效果展示

 

 

 

 

 

 

 

 

 

 

 

 

 

搜索5.
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值