C# Memcache集群原理、客户端配置详细解析
概述
memcache是一套开放源的分布式高速缓存系统。由服务端和客户端组成,以守护程序(监听)方式运行于一个或多个服务器中,随时会接收客户端的连接和操作。memcache主要把数据对象缓存到内存中,通过在内存里维护一个统一的巨大的hash表。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。memcache基于一个存储键/值对的hashmap进行存储对象到内存中。memcache是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
特性:
•在 Memcached中可以保存的item数据量是没有限制的,只要内存足够 。
•Memcached单进程在32位系统中最大使用内存为2G,若在64位系统则没有限制,这是由于32位系统限制单进程最多可使用2G内存,要使用更多内存,可以分多个端口开启多个Memcached进程 。
•最大30天的数据过期时间,设置为永久的也会在这个时间过期,常量REALTIME_MAXDELTA
•单个item最大数据是1MB,超过1MB数据不予存储,常量POWER_BLOCK 1048576进行控制
Memcache集群原理
Memcache:通过客户端驱动实现集群。Redis、MongoDb:通过服务器端实现集群;Memcache初始化驱动的时候,可以给定一个集合,如
string[] servers = { "172.20.10.7:11211","172.20.10.8:11211"};
驱动实现集群原理图

Memcache优缺点:
1、不能作为持久化保存
2、存储数据有限:1M【大于1M,人为进行分割】
3、存储只能key-value
4、集群数据没有复制和同步机制。【奔溃不会影响程序,没有主从复制机制(没有额外复制开销)】
5、内存回收不是很及时,LRU:未使用内存>过期内存>最近最少使用内存 惰性删除(也算是缺点)
好了,我们现在大概知道Memcache干什么用的呢,其实方法很简单,请参考我上篇博客:https://www.cnblogs.com/chenyanbin/p/11415368.html
代码实现:
1、下载dll客户端类库
地址:https://sourceforge.net/projects/memcacheddotnet/
百度云盘:
链接:https://pan.baidu.com/s/1tIkdYdp8rkKtXMeOeT24AA
提取码:5yk2
2、引入类库

3、添加引用

4、 代码
//分布式Memcached服务器ip 端口
string[] servers = { "172.20.10.7:11211"}; //Memcache机器IP
//初始化池
SockIOPool pool = SockIOPool.GetInstance();
pool.SetServers(servers); //关联连接池
pool.InitConnections = ; //初始化链接
pool.MinConnections = ; //最小连接数
pool.MaxConnections = ; //最大连接数
pool.SocketConnectTimeout = ; //Socket超时连接时间
pool.SocketTimeout = ; //Socket超时时间
pool.MaintenanceSleep = ; //Socket休眠时间
pool.Failover = true;
pool.Nagle = false;
pool.Initialize(); //初始化
//客户端实例
MemcachedClient mc = new MemcachedClient();
mc.EnableCompression = false; //启动压缩
mc.Add("keykey", "valuevalue"); //添加
//mc.Delete("keykey"); //删除
//mc.Set("", ""); //设置
//mc.Get(""); //获取
实现:

成功


示例DEMO
链接:https://pan.baidu.com/s/1QhHEO71jMDCbZ72lbFNNcw
提取码:0a5i
如果这篇文章对你有帮助,帮忙推荐下,有不懂的地方欢迎下方留言~~
C# Memcache集群原理、客户端配置详细解析的更多相关文章
- Quartz集群原理及配置应用
1.Quartz任务调度的基本实现原理 Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现.作为一个优秀的开源调度框架,Quartz具有以下特点: (1) ...
- 【原理、应用】Quartz集群原理及配置应用
一.Quartz任务调度的基本实现原理 Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现.作为一个优秀的开源调度框架,Quartz具有以下特点: 强大的 ...
- Memcache集群安装与配置
Memcache集群的安装和配置 :http://blog.163.com/asd_wll/blog/static/210310402013084405481/
- Elasticsearch之重要核心概念(cluster(集群)、shards(分配)、replicas(索引副本)、recovery(据恢复或叫数据重新分布)、gateway(es索引的持久化存储方式)、discovery.zen(es的自动发现节点机制机制)、Transport(内部节点或集群与客户端的交互方式)、settings(修改索引库默认配置)和mappings)
Elasticsearch之重要核心概念如下: 1.cluster 代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的.es的一个概念就是 ...
- memcache集群
实现memcache集群 一:memcache本身没有redis锁具备的数据持久化功能,比如RDB和AOF都没有,但是可以通过做集群的方式,让各memcache的数据进行同步,实现数据的一致性,即 ...
- CAS服务器集群和客户端集群环境下的单点登录和单点注销解决方案
CAS的集群环境,包括CAS的客户应用是集群环境,以及CAS服务本身是集群环境这两种情况.在集群环境下使用CAS,要解决两个问题,一是单点退出(注销)时,CAS如何将退出请求正确转发到用户sessio ...
- kafka集群原理介绍
目录 kafka集群原理介绍 (一)基础理论 二.配置文件 三.错误处理 kafka集群原理介绍 @(博客文章)[kafka|大数据] 本系统文章共三篇,分别为 1.kafka集群原理介绍了以下几个方 ...
- redis 哨兵集群原理及部署
复制粘贴自: https://www.cnblogs.com/kevingrace/p/9004460.html 请点击此链接查看原文. 仅供本人学习参考, 如有侵权, 请联系删除, 多谢! Redi ...
- CEPH集群操作入门--配置
参考文档:CEPH官网集群操作文档 概述 Ceph存储集群是所有Ceph部署的基础. 基于RADOS,Ceph存储集群由两种类型的守护进程组成:Ceph OSD守护进程(OSD)将数据作为对象 ...
随机推荐
- markdown表情
Emoji表情 将对应emoji表情的符号码复制后输入你的markdown文本即可显示emoji表情. 如:blush:,显示为
- 【Demo 1】基于object_detection API的行人检测 1:环境与依赖
环境 系统环境: win10.python3.6.tensorflow1.14.0.OpenCV3.8 IDE: Pycharm 2019.1.3.JupyterNotebook 依赖 安装objec ...
- CMS简单内容管理系统
架构 NewsDaoSQLServerImpl public class NewsDaoSQLServerImpl extends BaseDao implements NewsDao { publi ...
- spring与mybatis整合(扫描Mapper接口)
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" ...
- Angular JS 中的内置方法之$watch
在$apply方法中存在脏检查,首先apply方法会触发evel方法,当evel方法解析成功后,会去触发digest方法,digest方法会触发watch方法. $watch(watchFn,watc ...
- 理解SVG中的 viewport,viewBox, preserveAspectRatio
_ 阅读目录 一:理解viewport 二:理解viewBox 三:理解 preserveAspectRatio 回到顶部 一:理解viewport 该属性表示的是SVG可见区域的大小.或者也可以叫画 ...
- 【Android Studio】提示代码忽略大小写
在 Preference... 中找到如下,设置 Case sensitive completion 为 None 即可,如下图: PS: 该截图是 Intellij IDEA (Android St ...
- 表单与v-model
基本用法 vue.js提供了v-model指令,用于在表单类元素上双向绑定数据,例如在输入框上使用,输入的内容会实时映射到绑定的数据上 example1:修改input框内容,message会实时渲染 ...
- 的Blog
作者:Ovear链接:https://www.zhihu.com/question/20215561/answer/40316953来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- 分布式ID系列(4)——Redis集群实现的分布式ID适合做分布式ID吗
首先是项目地址: https://github.com/maqiankun/distributed-id-redis-generator 关于Redis集群生成分布式ID,这里要先了解redis使用l ...