基于Memcache的分布式缓存系统详解
文章不是简单的的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的分布式缓存系统详解的更多相关文章
- Kafka 分布式消息系统详解
实际上kafka对机器的需求与Hadoop的类似. 原来,对于Linkin这样的互联网企业来说,用户和网站上产生的数据有三种: 需要实时响应的交易数据,用户提交一个表单,输入一段内容,这种数据最后是存 ...
- 实现一个基于WCF的分布式缓存系统
tks:http://www.cnblogs.com/xiguain/p/3913220.html
- 《深入理解mybatis原理6》 MyBatis的一级缓存实现详解 及使用注意事项
<深入理解mybatis原理> MyBatis的一级缓存实现详解 及使用注意事项 0.写在前面 MyBatis是一个简单,小巧但功能非常强大的ORM开源框架,它的功能强大也体现在它的缓 ...
- Bootstrap栅格系统详解,响应式布局
Bootstrap栅格系统详解 栅格系统介绍 Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列. 栅格系统用于通 ...
- Memcached 分布式缓存系统部署与调试
Memcache 分布式缓存系统部署与调试 工作机制:通过在内存中开辟一块区域来维持一个大的hash表来加快页面访问速度,和数据库是独立的;目前主要用来缓存数据库的数据;存放在内存的数据通过LRU算法 ...
- Redis for Windows(C#缓存)配置文件详解
Redis for Windows(C#缓存)配置文件详解 前言 在上一篇文章中主要介绍了Redis在Windows平台下的下载安装和简单使用http://www.cnblogs.com/aehy ...
- NCache:最新发布的.NET平台分布式缓存系统
NCache:最新发布的.NET平台分布式缓存系统在等待Microsoft完成Velocity这个.NET平台下的分布式内存缓存系统的过程中,现在让我们将目光暂时投向其他已经有所建树的软件开发商.Al ...
- centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解
centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解 操作系统:centos 7.2 x86_64 安装walle系统服务端 1.以下安装,均在宿主机( ...
- Spring+Shiro搭建基于Redis的分布式权限系统(有实例)
摘要: 简单介绍使用Spring+Shiro搭建基于Redis的分布式权限系统. 这篇主要介绍Shiro如何与redis结合搭建分布式权限系统,至于如何使用和配置Shiro就不多说了.完整实例下载地址 ...
随机推荐
- JavaScript日期时间操作
<script> var d=new Date();//当前时间 alert(d); var d1=new Date(1992,5,19);//定义一个时间,月份要加1; alert(d1 ...
- poj2154
利用bzoj2705的结论我们很容易优化这道等价类计数的问题 sum(n^gcd(i,n))/n mod p (1<=i<=n) =sum(phi(n/L)*n^L)/n mod p (n ...
- 如何禁止anonymous用户访问nexus
nexus在默认情况下是允许anonymous用户浏览仓库,并下载仓库中的jar包的,如果我们搭建的私服是有公网IP的,必须要进行设置,使得anonymous用户的权限被禁用.操作步骤如下: 使用管理 ...
- [DP] LCS小结
额..失误.. LCS是Longest Common Subsequence的缩写,即最长公共子序列.一个序列,如果是两个或多个已知序列的子序列,且是所有子序列中最长的,则为最长公共子序列. DP.O ...
- 如何利用预编译指令来判断Delphi 的版本转载
条件符号 含义 VERxx 编译器版本,XX表示版本,例如:Delphi 1.0 的编译器版本为80.Delphi 5.0 的编译器版本为130WIN32 是否WIN32的运行环境(Windows 9 ...
- 【转载】zookeeper 分布式锁 实现
agapple 基于zookeeper的分布式lock实现 博客分类: opensource java distributed 背景 继续上一篇文章:http://agapple.iteye. ...
- 七个你必须重视的 Git 使用技巧
与其他技术相比,Git应该拯救了更多开发人员的饭碗.只要你经常使用Git保存自己的工作,你就一直有机会可以将代码退回到之前的状态,因此就可以挽回那些你深夜里迷迷糊糊犯下的错误. 尽管这么说,Git的命 ...
- spark高级排序彻底解秘
排序,真的非常重要! RDD.scala(源码) 在其,没有罗列排序,不是说它不重要! 1.基础排序算法实战 2.二次排序算法实战 3.更高级别排序算法 4.排序算法内幕解密 1.基础排序算法实战 启 ...
- weekend110(Hadoop)的 第四天笔记
(2015年1月18日) 课程目录 01-复习 02-hadoop中的序列化机制 03-流量求和mr程序开发 04-hadoop的自定义排序实现 05-mr程序中自定义分组的实现 06-shuffle ...
- hadoop的安装
1. 获取linux操作系统 可以申请云主机. 2. 安装JDK,配置环境变量 sudo apt-get install openjdk-7-jdk vim /etc/profile 在配置文件中配置 ...