ITOO4.1之Memcached实践篇

上篇博客小编主要讲解了Memcached的理论知识,对Memcached有了一定的了解之后,下一步就是要把Memcached应用的实际的项目开发中。这篇博客中,小编将对Memcached服务器的安装与Memcached的使用进行详细的介绍。

【Memcached安装】

一、首先需要我们做的就是从Memcached的官网上面去下载Memcached:http://memcached.org/downloads

二、接下来将解压后的下载文件放到计算机的某个盘里后,运行命令提示符:把路径转到放解压文件的地方(如下图,我解压路径是D盘下的memcach文件夹下)

ITOO4.1之Memcached实践篇_第1张图片

三、接下来就是执行Memcached的一些命令了:

1)   Install命令-安装

2)   运行:start-开启Memcached服务

3)   Stop是停止Memcached服务

4)   Uninstall命令是卸载Memcached

ITOO4.1之Memcached实践篇_第2张图片

5)   安装完成之后,可以在服务里面验证一下是否安装成功:

在命令提示符中输入cmd->services.msc查看服务:

ITOO4.1之Memcached实践篇_第3张图片

四、  进行一些Memcached的简单操作

1)首先用telnet 127.0.0.1 11211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。 (如果输入telnet 后报telnet不是内部或外部命令的时候,做如下操作。)

ITOO4.1之Memcached实践篇_第4张图片

2)输入stats效果

 ITOO4.1之Memcached实践篇_第5张图片

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,它到底有什么优势?我竟无言以对,其实在对知识探索的过程中,我们凡事多问个为什么,换一种思考问题的方式。或许会有不一样的感悟。




你可能感兴趣的:(memcached)