`
terryfeng
  • 浏览: 507270 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Memcached 基础应用

阅读更多

安装

Memcached服务器端的安装 (此处将其作为系统服务安装)
  下载文件:memcached 1.2.1 for Win32 binaries (Dec 23, 2006) 
   1 解压缩文件到c:\memcached
   2 命令行输入 'c:\memcached\memcached.exe -d install' 
   3 命令行输入 'c:\memcached\memcached.exe -d start' ,该命令启动 Memcached ,默认监听端口为 11211
  通过 memcached.exe -h 可以查看其帮助

 image

系统中会添加下面的服务

image
二   .NET memcached client library
   下载文件:https://sourceforge.net/projects/memcacheddotnet/

   里面有.net1.1  和 .net2.0的两种版本  还有一个不错的例子。

版本更新很慢,在.Net 的开发技术中十分少用,首微软的开发解决方案上面不赞成此种共享内存方式。

 

代码

引用下面的组件

image

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Memcached.ClientLibrary;
using System.Collections;

namespace MemcachedSample
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            int runs = 100;
            int start = 200;
            //if (args.Length > 1)
            //{
            //    runs = int.Parse(args[0]);
            //    start = int.Parse(args[1]);
            //}

            string[] serverlist = { "192.168.1.80:11211", "192.168.1.80:11211" }; //只能用IP

            // 初始缓存服务器
            SockIOPool pool = SockIOPool.GetInstance();
            pool.SetServers(serverlist);
            
            //连接数
            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;
            // 缓存Key
            string keyBase = "testKey";
            string obj = "放到缓存中的内容对象";

            long begin = DateTime.Now.Ticks;
            //循环runS - start 次 添加这么多次的块缓存,内容全是一个
            for (int i = start; i < start + runs; i++)
            {
                mc.Set(keyBase + i, obj); //存储数据到缓存服务器,Key 是 testKey100,testKey101......

            }
            long end = DateTime.Now.Ticks;
            long time = end - begin;//计算缓存用去的时间
            

            Response.Write(runs + " 次的存储时间: " + new TimeSpan(time).ToString() + "ms<br />");


            begin = DateTime.Now.Ticks;
            int hits = 0;
            int misses = 0;
            for (int i = start; i < start + runs; i++)
            {
                string str = (string)mc.Get(keyBase + i); //获取当前次数的缓存值
                if (str != null)
                    ++hits; //存在计数
                else
                    ++misses; //不存在计数,这种实力如果出现不存在就出问题了
            }
            end = DateTime.Now.Ticks;
            time = end - begin; //计算时间

            Response.Write(runs + " 获取缓存内容的时间: " + new TimeSpan(time).ToString() + "ms" + "<br />");
            Response.Write("Cache hits: " + hits.ToString() + "<br />");
            Response.Write("Cache misses: " + misses.ToString() + "<br />");

            IDictionary stats = mc.Stats();
            foreach (string key1 in stats.Keys)
            {
                Response.Write("配置地址做Key,也就是此地址当前的配置信息:"+key1 + "<br />而值也是一个名值对每个名是状态名,值是状态值:<br />");
                Hashtable values = (Hashtable)stats[key1]; //地址的状态集合
                foreach (string key2 in values.Keys) //遍历输出
                {
                    Response.Write(key2 + ":" + values[key2] + "<br />");
                }
                Response.Write("<p />");
            }

         //   if (mc.KeyExists("test"))
         //    {
         //       Console.WriteLine("test is Exists");
         //      Console.WriteLine(mc.Get("test").ToString());
         //    }


            SockIOPool.GetInstance().Shutdown();  ////关闭池, 关闭sockets

        }
    }
}

结果

image

代码下载:MemcachedSample.rar

分享到:
评论

相关推荐

    memcached基础-参考

    【memcached基础详解】 memcached 是一款高效的数据缓存系统,其主要目的是为了缓解数据库的访问压力,提高网站系统的响应速度。它通过将常用数据存储在内存中,减少了对数据库的直接操作,从而提升了整体性能。 1...

    Memcached缓存机制 用好Cache,优化应用

    ### Memcached的基础概念 1. **键值对存储**:Memcached以键值对的形式存储数据,键(key)是唯一的标识符,值(value)可以是任何类型的数据,如字符串、数字、二进制等。这种存储方式便于快速查找和更新数据。 2...

    memcached-笔记资料

    【标题】"memcached-笔记资料"涉及到的核心知识点是分布式内存缓存系统——Memcached,它是一个高性能、轻量级的缓存解决方案,主要用于减轻数据库的负载,提高Web应用的性能。 【描述】"memcached-笔记资料"暗示了...

    memcached完全剖析

    ### Memcached完全剖析 ...通过了解其基础原理、内存管理机制、分布式策略及其实际应用案例,可以帮助开发者更好地掌握memcached的使用方法,并将其应用于自己的项目中,以提升系统的性能和响应速度。

    高速web缓存组件 memcached全面剖析 中文版

    然而,memcached的基础知识远远未能像其他Web技术那样普及,memcached在国内的大规模应用也在急速兴起。 第1 章 memcached的基础 第2章 理解memcached的内存存储 第3 章 memcached的删除机制和发展方向 第4 章 ...

    Memcached 客户端 服务端 管理工具

    - **`telnet`**:最基础的管理方式是直接通过telnet连接到Memcached服务端,手动输入命令进行交互,虽然原始但非常直观。 ### 4. Memcached的应用场景 - **Web应用加速**:缓存动态生成的网页内容,减少数据库查询...

    memcached工具类源码

    1. **Memcached基础概念** - **内存存储**:Memcached基于内存进行数据存储,这意味着它的读取速度非常快,但同时也意味着数据不持久化,如果服务器重启,所有数据将丢失。 - **分布式缓存**:它可以在多台服务器...

    Memcached相关DLL文件

    Memcached是一种高性能、分布式内存对象缓存系统,用于在动态应用中减少数据库负载,提高网站性能。它通过存储数据和对象在内存中...同时,了解如何使用Memcached的命令行工具和配置文件也是管理Memcached服务的基础。

    memcached客户端文件及服务端

    "memcached-win32-bin"是一个32位Windows版的Memcached服务端安装包,提供了在Windows环境中部署和运行Memcached的基础。配合客户端库(如dll文件),可以方便地在各种编程语言中与Memcached服务端进行交互,实现...

    memcached 在ASP.NET[最终版]

    综上所述,"memcached 在ASP.NET[最终版]"是一个全面介绍如何在ASP.NET环境中利用memcached提升Web应用性能的资源,涵盖了从基础集成到高级优化的方方面面。通过学习和实践,开发者可以有效地提升其ASP.NET应用的...

    memcached源代码分析

    **memcached源代码分析** **一、memcached简介** ...通过这两个文件的学习,可以深入理解memcached的内部工作机制,为优化和自定义memcached提供理论基础,或者帮助开发者在类似项目中应用memcached的设计理念。

    memcached详解.pdf

    **第 1 章 memcached 的基础** 1.1 memcached是什么? memcached是一款开源的、高性能、分布式内存对象缓存系统。它设计的目标是减轻数据库的负载,提高动态Web应用的响应速度。通过将数据存储在内存中,memcached...

    memcached使用最佳实践(英文版)

    ### 三、Memcached实施基础 #### 3.1 Memcached在缓存系统中的角色 Memcached在缓存系统中扮演着核心角色,作为中间层位于应用程序和后端数据库之间。它通过缓存经常访问的数据和对象,减少了对数据库的直接查询,...

    memcached(十一)memcached-session-manager

    1. **Memcached基础**:首先,教程可能会介绍memcached的基本概念,如其内存存储模型、key-value结构,以及它如何提供快速的缓存服务。 2. **Session管理问题**:在Web开发中,session管理是关键,特别是在高并发...

    网上收集最新的Memcached学习资料

    Memcached是一种高性能、分布式内存对象缓存系统,广泛应用于Web应用中...而提供的PDF文档和PPTX文件,将更深入地介绍Memcached的各个方面,包括基础概念、内存管理和集群搭建等,对于学习和掌握Memcached非常有帮助。

    《Apache, MySQL, memcached和Perl开发Web应用程序》[PDF]

    书中将探讨Perl的基础语法,以及如何利用Perl与Apache、MySQL和memcached进行交互,创建动态Web应用程序。 此外,书中还可能包含如何构建RESTful API、错误处理和调试技巧、性能测试和优化策略等内容。通过实际案例...

    memcached-release_2.6.6

    Memcached 是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载。这个“memcached-release_2.6.6”版本是该软件的一个特定版本,可能包含了一些针对性能优化或bug修复的改进。 **一...

    memcached详细安装

    ### Memcached 安装与配置详解 #### 一、Memcached 概述 Memcached 是一款高性能的分布式内存缓存服务器,由 ...通过本文介绍的基础知识和安装步骤,初学者可以快速上手并利用 Memcached 来优化自己的 Web 应用性能。

Global site tag (gtag.js) - Google Analytics