MemCache是一套高性能的分布式高速缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态web应用的速度、提高可扩展性、数据库驱动网站的速度。
Memcached基于一个存储键/值对的hashmap。
MemCache 官网:http://memcached.org/
安装步骤:
1、下载安装MemCache服务。
2、安装MemCache可视化监视工具MemCacheD Manager。
3、下载Net类库,使用MemCache。
4、Nodejs使用MemCache。
具体实施
1、下载安装MemCache服务。
下载最新的x64位MemCache地址:http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available,把文件memcached-win64-1.4.4-14.zip里面的文件解压到“C:\Program Files\MemCacheD”目录,如图:
![](https://i-blog.csdnimg.cn/blog_migrate/db96a717b4627e719ece0e42f9cc124f.png)
然后进入cmd分别执行以下命令(安装服务并启动服务):
cd C:\Program Files\MemCacheD memcached.exe -d install memcached.exe -d start
安装完成执行:
memcached.exe -h
如果出现以下截图,证明安装成功:
默认端口号(11211)默认IP是本机(127.0.0.1)
![](https://i-blog.csdnimg.cn/blog_migrate/82ab040162b8b4c617a048d9511b3b01.jpeg)
2、安装MemCache可视化监视工具MemCacheD Manager
最新版下载地址:http://memcached-manager.software.informer.com/
个人建议去使用另外一个更强大的可视化工具:http://li150dan.blog.163.com/blog/static/172292297201851311544756/
安装memcachedmanager_1_0_3_0.msi到电脑,如图添加Add Server,配置服务名称,MemCache的路径,如图:
![](https://i-blog.csdnimg.cn/blog_migrate/67cd089e334d0a8df677736ebf5efbdd.png)
点击Apply保存,点击Add Instance配置端口等进行设置,如图,完成之后点击Apply保存:
注意端口号,不要使用被占用的,如果图标是绿色的证明,运行正常,点击Status查看缓存运行状况,如图:
![](https://i-blog.csdnimg.cn/blog_migrate/10151adaab9fa556f62c327ac878f678.png)
3、下载Net类库,使用MemCache
Net使用类库下载地址:http://sourceforge.net/projects/memcacheddotnet/
NET中的Memcached.ClientLibrary使用详解参考地址:http://www.cnblogs.com/knowledgesea/p/4940713.html
解压memcacheddotnet_clientlib-1.1.5.zip,使用目录 ..\memcacheddotnet_clientlib-1.1.5\memcacheddotnet\trunk\clientlib\src\clientlib\bin\2.0\Release下的Memcached.ClientLibrary.dll文件,添加net引用,写入控制台程序代码,进行调用测试,代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //引用 using Memcached.ClientLibrary; namespace MemcacheDEMO { //Memcache缓存简单实例 public class Program { public static void Main(string[] args) { //参数设置 string SockIOPoolName = "demo"; string[] MemcacheServiceList = { "127.0.0.1:11211" }; //设置连接池 SockIOPool SPool = SockIOPool.GetInstance(SockIOPoolName); SPool.SetServers(MemcacheServiceList); SPool.Initialize(); //实例化Client MemcachedClient MClient = new MemcachedClient(); MClient.PoolName = SockIOPoolName; //添加一个key,并设置过期时间 MClient.Add("demoKey", "Hello World", DateTime.Now.AddSeconds(10)); Console.WriteLine("缓存的值:" + MClient.Get("demoKey")); Console.ReadKey(); } } }
输出结果,如图:
![](https://i-blog.csdnimg.cn/blog_migrate/b4a74c96fbcbbbbb0e62d247243df406.png)
说明:有一个缓存“demoKey”值为“Hello World”
4、Nodejs使用MemCache。
创建nodejs项目为Express 4.x框架,安装cacher-memcached组件,控制器写代码调用,官方使用API:https://www.npmjs.com/package/cacher-memcached
调用代码如下:
router.get('/', function (req, res, next) { var Memcached = require('cacher-memcached'); var cacher = new Memcached("192.168.20.135:11216", {}); cacher.set("key01", "testValue1",10); cacher.get('key01', function(err, val) { console.log("MemCache取值为:" + val); }); res.render('index', {title: "cacher-memcahced测试~"}); });
运行的结果,如图:
![](https://i-blog.csdnimg.cn/blog_migrate/8e8ef21a27c5204c4f3b33744679ea78.png)
说明取值成功。到此完结!