上篇博客小编主要讲解了Memcached的理论知识,对Memcached有了一定的了解之后,下一步就是要把Memcached应用的实际的项目开发中。这篇博客中,小编将对Memcached服务器的安装与Memcached的使用进行详细的介绍。
【Memcached安装】
一、首先需要我们做的就是从Memcached的官网上面去下载Memcached:http://memcached.org/downloads
二、接下来将解压后的下载文件放到计算机的某个盘里后,运行命令提示符:把路径转到放解压文件的地方(如下图,我解压路径是D盘下的memcach文件夹下)
三、接下来就是执行Memcached的一些命令了:
1) Install命令-安装
2) 运行:start-开启Memcached服务
3) Stop是停止Memcached服务
4) Uninstall命令是卸载Memcached
5) 安装完成之后,可以在服务里面验证一下是否安装成功:
在命令提示符中输入cmd->services.msc查看服务:
四、 进行一些Memcached的简单操作
1)首先用telnet 127.0.0.1 11211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。 (如果输入telnet 后报telnet不是内部或外部命令的时候,做如下操作。)
2)输入stats效果
3)通过set方法把经常会用的一些数据存入Memcached当中,用get方法可以得到存入缓存中数据(输入key值作为标记)
【Memcached小demo】
1)简单介绍:首先是设置连接Memcached的IP地址,然后设置一些参数并指定连接方式,先用set方式设置一些常用值,然后在通过get方法获取缓存中的值。同时,在这里设置两个IP地址,也可以很好地解释一下Memcached的分布式:
2)代码示例:
using Memcached.ClientLibrary; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace memcachedDemo.Controllers { public class HomeController : Controller { string strTest = ""; public void Memcache() {//, //添加多个缓存服务器地址 string[] serverlist = { "192.168.21.**2:11211","192.168.21.**5:11211"}; //初始化池 SockIOPool pool = SockIOPool.GetInstance(); pool.SetServers(serverlist); //设置memcached 的一些参数 pool.InitConnections = 3; pool.MinConnections = 3; pool.MaxConnections = 5; pool.SocketConnectTimeout = 1000; pool.SocketTimeout = 3000; pool.MaintenanceSleep = 30; pool.Failover = true; pool.Nagle = false; pool.Initialize(); // 获得客户端实例 MemcachedClient mc = new MemcachedClient(); mc.EnableCompression = false; Console.WriteLine("------------测 试-----------"); bool flags1 = mc.Set("user1", "my value!!!!!!"); //存储数据到缓存服务器,这里将字符串"my value"缓存,key 是"test" bool flags2 = mc.Set("user2", "my value"); bool flags3 = mc.Set("user3", "my value"); bool flags4 = mc.Set("user4", "my value"); bool flags5 = mc.Set("user5", "my value"); bool flags6 = mc.Set("user6", "my value"); if (mc.KeyExists("user2")) //测试缓存存在key为test的项目 { Console.WriteLine("test is Exists"); Console.WriteLine(mc.Get("user2").ToString()); //在缓存中获取key为test的项目 this.strTest = mc.Get("user2").ToString(); } else { Console.WriteLine("test not Exists"); } // Console.ReadLine(); bool flag = mc.Delete("user2"); //移除缓存中key为test的项目 if (mc.KeyExists("user2")) { Console.WriteLine("test is Exists"); Console.WriteLine(mc.Get("user2").ToString()); } else { Console.WriteLine("test not Exists"); } SockIOPool.GetInstance().Shutdown(); //关闭池, 关闭sockets //Console.ReadLine(); } // // GET: /Home/ public ActionResult Index() { Memcache(); ViewData["strTest"] = strTest; return View(); } } }在运行程序的时候,我们可以打开Memcached命令窗口然后在各台服务器上面测试一下存入的数据,实践之后,你会很清楚的明白分布式缓存。
【学习小结】
前两天在小组内分享学习的Memcached,因为在做高校的时候用到的就有Memcached,而且高校里面也是有不小的数据量,当然对于其中的一些常用的数据存储在Memcached里面,无疑可以提高性能。当时说好要研究缓存的时候,我就一门心思的找Memcached的相关资料:什么是Memcached、为什么说它是分布式的、如何在代码中体现Memcached的。当然也从网上搜集了一些视频资料。技术分享的时候,小组长问了我这么一个问题:有好多缓存的技术,为什么咱们要用Memcached,它到底有什么优势?我竟无言以对,其实在对知识探索的过程中,我们凡事多问个为什么,换一种思考问题的方式。或许会有不一样的感悟。