1、安装

Linux环境下安装

1--安装libevent

#tar zvxf libevent-2.0.13-stable.tar.gz

#cd libevent-2.0.13-stable

#./configure --prefix=/usr

#make

#make install

--检查是否成功

# ls -al /usr/lib | grep libevent

2--安装memcached

#tar zxvf memcached-1.4.0.tar.gz

#cd memcached-1.4.0

# ./configure --with-libevent=/usr

# make

# make install

--检查是否成功

root@yang-desktop:~$ ls -la /usr/local/bin/*mem*

-rwxr-xr-x 1 root root 257899 2011-09-18 18:10/usr/local/bin/memcached

3--启动memcached

/usr/local/bin/memcached -d -m 100 -u root -l 127.0.0.1-p 11211 -c 256

【说明】

-d:启动一个守护进程,

-m:分配给Memcache使用的内存数量,单位是MB,默认是64MB,

-u:运行Memcache的用户

-l:监听的服务器IP地址,127.0.0.1 为ip地址,多个间隔用逗号

-p:设置Memcache监听的端口,默认是11211注:-p(p为小写)

-c:设置最大并发连接数,默认是1024

-h 显示帮助

4--关闭memcached

killall memcached

windows环境下安装

1   下载memcached-1.2.6-win32-bin.zip,地址为:

http://code.jellycan.com/memcached/

2   cmd命令运行memcached.exe -d install

3  cmd命令net start "memcached Server",打开任务管理器,可以看见memcached.exe的进程.

4   F:/php/mem/memcached.exe -d start

指定内存划分-m 200 ,IP监听 -l 192.168.1.*,端口号-p 11211等

5   验证安装成功:进入telnet localhost 11211

6   进入. 输入version查看版本,输入stats查看状态

2、示例代码

使用Memcache客户端需要依赖的第三方类库:

commons-logging-1.0.4.jar or highversion

log4j-1.2.12.jar or high version

codehaus/woodstox/wstx-asl-3.2.1.jaror high version

codehaus/staxapi/stax-api-1.0.1.jaror high version

基础配置文件:

<?xml version="1.0"encoding="UTF-8"?>

<memcached>

<client name="mclient1"compressEnable="true" defaultEncoding="UTF-8"socketpool="pool0">       <errorHandler>com.alisoft.xplatform.asf.cache.memcached.MemcachedErrorHandler</errorHandler>

</client>

<socketpool name="pool0"failover="true" initConn="5" minConn="5"maxConn="250" maintSleep="0"

nagle="false"socketTO="3000" aliveCheck="true">

<servers>127.0.0.1:11211</servers>

</socketpool>

<cluster name="cluster1">

<memCachedClients>mclient1</memCachedClients>

</cluster>

</memcached>

1.       创建memcached的标签。

2.       创建 client的标签。

注意:

name 属性是程序中使用Cache的唯一标识。

socketpool 属性将会关联到后面的socketpool配置。

errorHandler 可选,用来处理出错情况。注意在Tag中不要使用空格或者Tab键。

3.       创建socketpool的标签。

注意:

name 属性和client 配置中的socketpool 属性相关联。

maintSleep属性是后台线程管理SocketIO池的检查间隔时间,如果设置为0,则表明不需要后台线程维护SocketIO线程池,默认需要管理。

socketTO 属性是Socket操作超时配置,单位ms。

aliveCheck 属性表示在使用Socket以前是否先检查Socket状态。

4.       创建 servers 标签作为socketPool的子标签.设置memcache服务端实例地址,支持多个地址设置,例如“127.0.0.1” 或 “127.0.0.1:11211, 127.0.0.1:11212”.

5.       创建 weights 标签作为socketPool的子标签(可选),它表明了上面设置的服务器实例的Load权重. 例如<weights>3,7</weights> 表示30% load 在127.0.0.1:11211, 70% load 在127.0.0.1:11212

客户端

简单使用:

public void test()

{

ICacheManager<IMemcachedCache>manager;

manager =CacheUtil.getCacheManager(IMemcachedCache.class,

MemcachedCacheManager.class.getName());

manager.setConfigFile("memcached1.xml");//可以指定配置文件名

manager.start();

try

{

IMemcachedCache cache = manager.getCache("mclient");

cache.put("key","value");

org.junit.Assert.assertEquals(cache.get("key"),"value");

}

Finally{ manager.stop();}

}

注意:

Cache Manger 不要创建多个,一个实例就可以满足应用的需求,它会负责创建和初始化所有配置在Classpath下配置文件中的客户端, Cache Manager 也可以由开发者自己实现,只需要在你的jar中META-INF/services 目录里建立文件名为“com.alisoft.xplatform.asf.cache.ICacheManager”的文件,然后将将实现类全路径写在这个文件中即可,框架将会自动载入。

Cache Manger start 表示初始化所有的配置过的客户端,stop 表示释放Cache Pool中客户端的资源。

结合本地Cache使用 Memcache:

publicvoid test()

{

ICacheManager<IMemcachedCache> manager;

manager =CacheUtil.getCacheManager(IMemcachedCache.class,

MemcachedCacheManager.class.getName());

manager.start();

try

{

IMemcachedCache cache =manager.getCache("mclient");

cache.put("key", "value");

org.junit.Assert.assertEquals(cache.get("key",5),"value");

}

Finally{ manager.stop();}

}

使用本地Cache结合Memcache,可以极大提高程序的执行效率,因为Memcache还是会在网络交互中损耗,因此将数据根据敏感程度在本地也作有效时间缓存可以提高效率。       Cache.get(“key”,5)表示首先从本地缓存获取”key”的值,如果存在立即返回,如果不存在,则查询Memcache,当Memcache获取到此数据,则将该数据缓存在本地缓存,并且设置有效期为5秒钟后失效。

memcache学习相关推荐

  1. memcache学习之c客户端

    2019独角兽企业重金招聘Python工程师标准>>> http://www.beckbi.cn/?p=210 memcache学习之简单使用,介绍mc的协议.使用mc的协议实现了一 ...

  2. Memcache学习笔记

    基本的memecached客户端命令 5个常用的命令: 1.-stats:当前所有memcached服务器运行的状态信息 2.-add: 添加一个数据到服务器. 3.-set:替换一个已经存在的数据, ...

  3. memcache 学习

    memcache的最佳实践方案 http://www.blogjava.net/chhbjh/archive/2012/02/21/370472.html api频次限制设计与实现 http://if ...

  4. memcache的学习路线图

    memcache学习材料 //memcache自带的github 上的 wiki //席剑飞 Memcache(MC)系列 1~8系列 评注: memcache系统写的最深的一博客,建议一读. htt ...

  5. memcache 源码分析之开场白

    装逼之前的一段独白: 现在2018年5月5号.距离上次写技术博客还是2016好像是12月份的事情,当时离职在陪老婆考试,我算是半给陪考和半个鼓励师.呵呵..不知不觉时间到了2018年,我也来到了深圳, ...

  6. python实现监控数据界面_python 监控界面

    MySQL MTOP - 开源 MySQL 企业监控系统 MySQLMTOP是一个由Python+PHP开发的MySQL企业级监控系统.系统由Python实现多进程数据采集和告警,PHP实现WEB展示 ...

  7. python的锁机制_python锁机制

    python 多线程 真正的多线程吗? 对于多核处理器,在同一时间确实可以多个线程独立运行,但在Python中确不是这样的了.原因在于,python虚拟机中引入了GIL这一概念.GIL(Global ...

  8. 分布式核心技术-Redis详解

    前面有写过一篇Redis集群实战详解,主要是针对部署redis集群实战操作.可参考:https://blog.csdn.net/qq_45441466/article/details/11642431 ...

  9. memcache、Redis与MongoDB的学习-1

    除此接触这三个词的概念,对今天看的资料最了一些整理. 之前经常有看到memcache.Redis与MongoDB相关的数据库,最开始意味这些都只是用来做数据库优化的缓存工具,后来具体看了一些资料之后才 ...

最新文章

  1. Gonet2 游戏server框架解析之gRPC提高(5)
  2. Linux 防火墙开放特定端口 (iptables)
  3. 打开高效文本编辑之门_Linux Sed插入追加转换退出等命令应用
  4. Problem C: 类的初体验(III)
  5. Service Worker的应用
  6. shouldComponentUpdate 的作用
  7. MySQL启动过程详解
  8. 如何编写优雅的代码:05. 设计模式(下)
  9. 第一节:分布式文件系统(DFS,Distributed File System)
  10. Spring的单例模式底层实现
  11. 不出门也能拍好证件照
  12. matlab实现带通滤波器的方法,数字信号处理课程设计---带通滤波器的设计及其MATLAB实现.doc...
  13. tinymce 实现 粘贴图片自动上传
  14. VB中数组的嵌套循环
  15. 关于nginx指向nacos遇到的坑
  16. CSDN--在有序和无序段落中如何换行
  17. wordExport导出word时关于echarts图表生成图片的解决方案
  18. 【笔试——腾讯2021实习笔试题第二次2021.4.4】第3题 n人高空过钢索
  19. CCF人工智能的A类期刊会议列表
  20. 北航计算机科学与技术专业考研方向,北京航空航天大学2017年计算机科学与技术专业介绍_北航考研网...

热门文章

  1. JSP 编译和运行过程与JSP源码简单分析
  2. 迎接爆炸主升浪?(附股)
  3. MATLAB希尔伯特黄变换HHT
  4. TX2配置RealSense D455相机SDK和ros驱动
  5. excel插入散点图按时刻设置横坐标刻度值
  6. 【Python】max()中key的使用
  7. LS1021ATWR开发板启动日志分析
  8. 安卓IOS客户端调试webview页面的方法,支持实时预览
  9. 【C++】使用VS2022和GCC编译Xlnt库读取EXCEL
  10. eNSP配置静态路由及默认路由的三种案例