文章不是简单的的Ctrl C与V,而是一个字一个标点符号慢慢写出来的。我认为这才是是对读者的负责,本教程由技术爱好者成笑笑(博客:http://www.chengxiaoxiao.com/)写作完成。如有转载,请声明出处。

主要内容

Memcache原理及介绍

Memcache安装及使用

C#的Memcache Demo

Memcache介绍

假如现在我们的服务器从一台增加到三台。首先需要解决的问题就是如何共享用户的登录的状态。需要解决如上问题我们通常会有如下几个方案:

1.进程外Session

2.把用户状态存入数据库

3.利用Memcache、NoSql、Redis等缓存

通常情况下,利用第三种方案是效率最高性能最好的。所以就让我们一起揭开Memcache的神秘面纱。

何为Memcache?

Memcache是一项开源的的缓存服务。是解决网站访问量大,数据库压力倍增的解决方案之一主要是用内存换磁盘读写的一项策略。把数据库数据存储到缓存中。只有当缓存中数据过期时,再把数据库中的数据读取到缓存中,大大的减少了IO读写操作。而内存的读写是远远大于IO读写的。所以如此便提高了系统的性能。

Memcache主要通过键值对的形式存储。它的读写的性能非常好,1s可以读写上万次乃至以上。很方便的可以实现多台服务器集群化。为了性能考虑,他只提供了存取数据的功能,没有提供主从赋值和容灾等功能。而且Memcache的代码相对简单。学习成本较低。

Memcache安装及使用

安装:(这里以windows安装Memcache为例)

1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached(下载地址:链接:http://pan.baidu.com/s/1boPI8t5 密码:sgcw)

2. 在cmd命令界面下输入 ‘c:\memcached\memcached.exe -d install’ 安装

3. 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。

这样你就可以在服务界面(开始-运行-services.msc)看到一个memcached Server的一项服务则表示安装成功。如下图:

C#的Memcache Demo

一:下载dll:下载地址:https://sourceforge.net/projects/memcacheddotnet/

二:引用:将Commons.dll,ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll 等放到bin目录引用。

代码实例:

//这个集合配置进去节点,就可以实现分布式了。11211是他得默认端口

string[] servers = { "127.0.0.1:11211"};

//初始化池

SockIOPool pool = SockIOPool.GetInstance();

pool.SetServers(servers);

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 Memcached.ClientLibrary.MemcachedClient();

mc.EnableCompression = false;

//增删改查

mc.Add("key1", "value1");

//增加数据设置过期时间

mc.Add("key1", "value1", DateTime.Now.AddDays(10));

mc.Set("key1", "222");

object value = mc.Get("key1");

mc.Delete("key1");

教程完毕!!!如有不当之处还请指正

微信名称:net知识分享

介绍:主要以发布和分享.Net和安卓文章为主,争做全栈开发工程师,爱学习,爱挑战,爱编程。

打造C#入门教程。总结自己已经习得的技术体系。分享到网络。为中国的软件复兴贡献自己的一份力。

如有不恰当之处,还请指正。

作者:成笑笑

职业:应届毕业生,找工作中。

本人联系方式:cxx@chengxiaoxiao.com

欢迎订阅我的头条号:做全栈攻城狮。每天一篇文章,一点资讯、QQ公众平台和搜狐自媒体号都是:做全栈攻城狮。

基于Memcache的分布式缓存系统详解的更多相关文章

  1. Kafka 分布式消息系统详解

    实际上kafka对机器的需求与Hadoop的类似. 原来,对于Linkin这样的互联网企业来说,用户和网站上产生的数据有三种: 需要实时响应的交易数据,用户提交一个表单,输入一段内容,这种数据最后是存 ...

  2. 实现一个基于WCF的分布式缓存系统

    tks:http://www.cnblogs.com/xiguain/p/3913220.html

  3. 《深入理解mybatis原理6》 MyBatis的一级缓存实现详解 及使用注意事项

    <深入理解mybatis原理> MyBatis的一级缓存实现详解 及使用注意事项 0.写在前面   MyBatis是一个简单,小巧但功能非常强大的ORM开源框架,它的功能强大也体现在它的缓 ...

  4. Bootstrap栅格系统详解,响应式布局

    Bootstrap栅格系统详解 栅格系统介绍 Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列. 栅格系统用于通 ...

  5. Memcached 分布式缓存系统部署与调试

    Memcache 分布式缓存系统部署与调试 工作机制:通过在内存中开辟一块区域来维持一个大的hash表来加快页面访问速度,和数据库是独立的;目前主要用来缓存数据库的数据;存放在内存的数据通过LRU算法 ...

  6. Redis for Windows(C#缓存)配置文件详解

    Redis for Windows(C#缓存)配置文件详解   前言 在上一篇文章中主要介绍了Redis在Windows平台下的下载安装和简单使用http://www.cnblogs.com/aehy ...

  7. NCache:最新发布的.NET平台分布式缓存系统

    NCache:最新发布的.NET平台分布式缓存系统在等待Microsoft完成Velocity这个.NET平台下的分布式内存缓存系统的过程中,现在让我们将目光暂时投向其他已经有所建树的软件开发商.Al ...

  8. centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解

    centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解 操作系统:centos 7.2 x86_64 安装walle系统服务端 1.以下安装,均在宿主机( ...

  9. Spring+Shiro搭建基于Redis的分布式权限系统(有实例)

    摘要: 简单介绍使用Spring+Shiro搭建基于Redis的分布式权限系统. 这篇主要介绍Shiro如何与redis结合搭建分布式权限系统,至于如何使用和配置Shiro就不多说了.完整实例下载地址 ...

随机推荐

  1. 使用Qt实现简单的图片预览效果 good

    http://www.cnblogs.com/appsucc/archive/2012/02/28/2371506.html Qt之实现工具箱界面程序 http://www.cnblogs.com/a ...

  2. Android用户界面UI组件--AdapterView及其子类(三) ExpandableListView

    ExpandableListView: List中的每一项可以展开收缩. 一种伸缩式的ListView. android:cacheColorHint="#00000000" 这个 ...

  3. Java Entry使用

    参考: http://blog.csdn.net/sunmenggmail/article/details/8952712 http://www.cnblogs.com/fstang/archive/ ...

  4. 利用if else判断几点是什么时间段

    static void Main(string[] args)        {            while (true)            {                int a;  ...

  5. Oracle坑之-空字符串与NULL

    空字符串与NULL 首先有如下代码 SELECT * FROM Pdc_DataDomain DD INNER JOIN Pdc_DD_Table DDT ON DD.DataDomainID = D ...

  6. java线程(2)-线程间通信

    方法一 通过访问共享变量的方式(注:需要处理同步问题) 方法二 通过管道流 其中方法一有两种实现方法,即 方法一a)通过内部类实现线程的共享变量  public class Innersharethr ...

  7. Android Loader详解二:使用加载器

    一个使用装载器的应用会典型的包含如下组件: 一个Activity或Fragment. 一个LoaderManager的实例. 一个加载被ContentProvider所支持的数据的CursorLoad ...

  8. PowerDesigner 怎么给 Table Properties 增加注释和默认值

    1.  选中表,右键 2. 选中“comment”, 这个就是列的注释 3.还是这个页面 ,往下有个“default value”, 这个就是你设置的默认值. 4. 这个是怎么设置默认值.

  9. HDU-2548 两军交锋

    两军交锋 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  10. 【转】【阮一峰的网络日志】Git 使用规范流程

    作者: 阮一峰 日期: 2015年8月 5日 团队开发中,遵循一个合理.清晰的Git使用流程,是非常重要的. 否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护. 下面是Th ...