文章不是简单的的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. EMMC 简要介绍

    一直想写一篇关于EMMC的文章,但是因为之前弄了很多PPT,所以一直提不起兴趣,索性直接把之前的一个介绍EMMC的PPT贴出来给大家看看,有什么问题可以直接跟帖,我会第一时间进行解答,谢谢

  2. WCF - net.pipe vs. net.tcp vs. http Bindings

    WCF - net.pipe vs. net.tcp vs. http Bindings 问题: I'm new to WCF and would like to know the differenc ...

  3. 原始启动log&新log

    root@Taiyear:/# U-Boot 1.1.3 (Dec 27 2013 - 09:14:28) SoC:MediaTek MT7620 DRAM:  Memory Testing..655 ...

  4. 基础算法(搜索):NOIP 2015 斗地主

    Description 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3& ...

  5. extjs form 取值 赋值 重置

    一.从form中获取field的三个方法: 1.Ext.getCmp('id'); 2.FormPanel.getForm().findField('id/name'); 3.Ext.get('id/ ...

  6. Jquery UI dialog 详解 (中文)

    转载▼ 1 属性 1.11 autoOpen ,这个属性为true的时候dialog被调用的时候自动打开dialog窗口.当属性为false的时候,一开始隐藏窗口,知道.dialog("op ...

  7. How to compile pycrypto 2.4.1 (python 3.2.2 for Windows 7 x64)

    How to compile pycrypto 2.4.1 (python 3.2.2 for Windows 7 x64) Nov 10 Posted by alesk This note is a ...

  8. HW4.31

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  9. 51单片机连接24C02-C语言测试代码

    忙了一天多终于透彻了,自己写的不好使,用别人的逐步分析改成自己的,我写得非常简洁易懂. 我总结3点需要注意的地方 1.关闭非IIC通信器件,比如我的开发板SDA和SCL也连接了DS1302,造成干扰会 ...

  10. liunx shell数字相加

    #!/bin/bash num1= num2= num3= #echo $($num1+$num2+$num3)#错误写法 echo $[$num1+$num2+$num3] echo $(($num ...