基于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就不多说了.完整实例下载地址 ...
随机推荐
- OA学习笔记-005-Spring2.5与struts2.1整合
一.单独测试strust 1.action package cn.itcast.oa.test; import org.springframework.context.annotation.Scope ...
- 如何在C++中使用WebService
gsoap主页 http://sourceforge.net/projects/gsoap2 使用gsoap生成所需的WebService 下载后的gsoap包为:(点击到我的资源中下载) 将他解 ...
- Android用户界面 UI组件--TextView及其子类(一) TextView
1.TextView android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none /web/email/phone/map/a ...
- Android Service 详解
一个Service也是一种应用程序组件,它运行在后台以提供某种服务,通常不具有可见的用户界面.其它的应用程序组件可以启动一个 Service,即使在用户切换到另外一个应用程序后,这个Service还是 ...
- listview异步加载sd卡图片
package com.example.gridview; import java.io.File; import java.io.FileOutputStream; import java.io.I ...
- 转:二十七、Java图形化界面设计——容器(JFrame)
转:http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的, ...
- 【转】三十三、Android给ListView设置分割线Divider样式
原文网址:http://www.cnblogs.com/linjiqin/archive/2011/11/12/2246349.html 给ListView设置分割线,只需设置如下两个属性: andr ...
- POJ -- 3140
#include<iostream> #include<cstdio> #include<cstring> #include<string> #defi ...
- HDOJ--1698
Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- nyoj 353 3D dungeon
3D dungeon 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 You are trapped in a 3D dungeon and need to find ...