【转载】在Windows下Memcache缓存系统构建(Java)
来源:互联网 发布:nba季后赛各项数据统计 编辑:程序博客网 时间:2024/06/03 08:13
【转载】在Windows下Memcache缓存系统构建(Java)
原文出自 http://www.cnblogs.com/itred/p/4217073.html
在如今这个高效率的社会中,怎样将这个高效率应用到自己的程序中,是一个值得追寻和值得探讨的问题。因为这个memcache能够很好的提高检索速度,提升用户体验,而且重要的是减少数据库的访问。这就大大的提高了整个应用系统的档次。因此,在应用程序的开发中加入这样的一个技术无疑是给自己的程序锦上添花。瞬间就会显得高大上,像现在很多的web应用,都将一些基础信息直接放到远程缓存系统中,而且该缓存中的key的有效时间也是可以进行任意设定的。这就显得更加人性化,用起来更加方便!好了,废话不多说,实践是检验真理的唯一标准。
关于Memcache:
我认为在正式开始操作memcache之前还是应该了解一下即将要操作的这个是什么。Memcached基于一个存储键/值对的hashmap。其守护进程是用C语言写的,但是客户端的应用操作上是可以用任何语言编写,并通过memcached协议与守护进程通信。服务器端可以是windows,也可以是Linux。本博文将先介绍在windows下搭建和配置缓存服务器系统,在后面的博文中再进行介绍在linux中的安装和配置。
memcached是高性能的分布式内存缓存服务器。相当于开辟一大块儿内存用来存储,一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
Memcached的官网: http://memcached.org/ ,任何版本和一些操作api都可以从上面下载。
安装服务器端:
首先需要下载memcache的windows稳定版。即:有memcache.exe的文件,而这个的安装并不是直接在windows下双击就开始安装了,而是需要在dos命令行下,进行命令行形式的安装;
将下载后的文件放到一个较近路径下,这样在dos下操作比较方便,我直接放到e盘目录下的memcached文件夹下的memcached121文件夹下中;
安装过程,首先是找到自己机器上的cmd.exe文件的路径,一般情况下,windows中 cmd.exe 是在 C盘/Windows/System32 的文件中。直接进入这个文件中,然后找到cmd.exe,鼠标右键,以 管理员身份运行 这个程序,在打开的dos窗口中,输入以下命令进行安装:
>E:>cd memcached>cd memcached121>memcached.exe –d install>memcached.exe –d start
安装过程如图示:
4.验证安装是否成功:
待安装完成后,需要验证自己的memcache是否安装成功,这个时候,打开windows的服务界面就可以查看到安装后的memcache是否在列表中,并且可以看到该服务是否已经启动。
效果如图
5 此时安装已经完成,我们可以先在dos下体验一下缓存服务器的作用。打开dos窗口,输入以下命令:
>telnet 127.0.0.1 11211
注意这个的默认端口是11211
输入完成,确认后会进入缓存服务器的界面,然后就 可以用命令进行操作了。
基础命令:
格式:<command name> <key> <flags> <exptime> <bytes> <data block>
解释:
图示:
在缓存服务器上存储username,有效时间是20s,当我在20秒时间内输入get username 时,就会得到最开始设置的那个itRed值。相当于就是key-value ====》username-itRed (键值对);但是,当username的有效期已经过了时,即超过20秒后,我再去取username的值时就会出现END,NULL空值。因为已经失效。如下图所示:
6 接下来需要做的事用java程序进行操作:
在myeclipse中新建一个java工程,导入jar包。如图示:
贴出测试的源代码,附上代码注释。运行后的测试结果完全和在dos下操作一样。测试方法,运行程序后,在dos中用get方法查看是否能拿到开始设置的值。
package com.red.memcached;import java.util.Date;import com.danga.MemCached.MemCachedClient;import com.danga.MemCached.SockIOPool;public class Cache { public static void main(String[] args) { MemCachedClient memcacheClient = new MemCachedClient(); String[] address = { "127.0.0.1:11211" };//缓存服务器列表 Integer[] weights = { 3 }; SockIOPool pool = SockIOPool.getInstance(); pool.setServers(address); pool.setWeights(weights); pool.setInitConn(5); pool.setMinConn(5); pool.setMaxConn(200); pool.setMaxIdle(1000 * 30 * 30); // 设置可用连接池的最长等待时间 pool.setMaintSleep(30); pool.setNagle(false); // 设置是否使用Nagle算法,因为我们的通讯数据量通常都比较大(相对TCP控制数据)而且要求响应及时,因此该值需要设置为false(默认是true) pool.setSocketTO(30);// 设置socket的读取等待超时值 pool.setSocketConnectTO(0); pool.initialize();// 将数据放入缓存 memcacheClient.set("username", "Red"); // 将数据放入缓存,并设置失效时间 Date date = new Date(2000000); memcacheClient.set("user", "itRed", date); // 删除缓存数据 // memcacheClient.delete("user"); // memcacheClient.delete("username"); // 获取缓存数据 String str = (String) memcacheClient.get("username"); System.out.println(str); }}
这个案例只是用java语言实现,其实是用memcached的客户端可以用任何语言进行实现,如果你看懂了这个程序,但是你不知道如何将这个缓存加入到你的程序中?其实这是很好办的,只需要将这个demo放入工具包中,将这个demo作为一个工具类,需要用的时候,只需要将这个调用这个方法就可以了。很简单,是吧!哈哈。在下一篇博文中就会介绍在linux环境下搭建一个和这个一样的memcached缓存系统。两种相比之下,其实我认为第二种应该是目前很多公司都会采用的。
注:windows 7 memcached报failed to install service or service already installed的解决方案
在运行memcached.exe -d install的时候报了一个错,failed to install service or service already installed。
猜想可能是权限问题,毕竟是要作为服务安装的嘛,于是将cmd.exe以管理员身份运行,成功了。
以管理员身份运行的方法是在C:/windows/system32/下找到cmd.exe,之后右键“以管理员身份运行”就好了。
运行完,启动一下,可以在任务管理器的服务签找到memcached Server这样的服务进程,接下来就可以测试使用了。
- 【转载】在Windows下Memcache缓存系统构建(Java)
- Memcache缓存在window下实现
- memcache学习笔记1(在windows下安装PHP的扩展memcache)
- 在 Windows 下安装配置 PHP + Memcache
- memcache在windows下的安装
- 缓存系统之 Memcache
- Memcache缓存系统原理
- 在Windows系统下完全卸载Oracle(转载,修改)
- 转载 在windows下系统硬盘安装Fedora20
- 【memcache】 Windows下的Memcache安装与Java部署
- Windows下thinkphp5.0(tp5)的memcache数据缓存技术的实现过程
- 在windows下安装OpenSSL(转载)
- Memcache初探(二) ---- Windows下Memcache安装
- windows系统安装memcache
- memcache内存对象缓存系统
- ruby系统使用memcache缓存
- Memcache缓存系统知识点梳理
- 在windows系统和ubuntu系统下配置java环境变量
- 单例模式
- 对一个才子的走访我学到了什么?
- Aizu 0525(Osenbei 穷竭搜索)
- python 元类的使用(orm框架搭建)
- 克服当众表达的恐惧心理-《卡耐基语言的突破与相处的艺术》(美)卡耐基
- 【转载】在Windows下Memcache缓存系统构建(Java)
- android异步加载网络图片(1)
- 网络编程练习------简单双机通讯
- Launcher源码运行报错问题
- 匈牙利算法
- 采用dlopen、dlsym、dlclose加载动态链接库
- 产品经理养成计划之《缔造企鹅:产品经理是这样炼成的》读书笔记
- swift学习-AnyObject类型记录
- MediaWiki安装及Wiki网站搭建