概述

  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集群原理、客户端配置详细解析的更多相关文章

  1. Quartz集群原理及配置应用

    1.Quartz任务调度的基本实现原理 Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现.作为一个优秀的开源调度框架,Quartz具有以下特点: (1) ...

  2. 【原理、应用】Quartz集群原理及配置应用

    一.Quartz任务调度的基本实现原理 Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现.作为一个优秀的开源调度框架,Quartz具有以下特点: 强大的 ...

  3. Memcache集群安装与配置

    Memcache集群的安装和配置 :http://blog.163.com/asd_wll/blog/static/210310402013084405481/

  4. Elasticsearch之重要核心概念(cluster(集群)、shards(分配)、replicas(索引副本)、recovery(据恢复或叫数据重新分布)、gateway(es索引的持久化存储方式)、discovery.zen(es的自动发现节点机制机制)、Transport(内部节点或集群与客户端的交互方式)、settings(修改索引库默认配置)和mappings)

    Elasticsearch之重要核心概念如下: 1.cluster 代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的.es的一个概念就是 ...

  5. memcache集群

    实现memcache集群   一:memcache本身没有redis锁具备的数据持久化功能,比如RDB和AOF都没有,但是可以通过做集群的方式,让各memcache的数据进行同步,实现数据的一致性,即 ...

  6. CAS服务器集群和客户端集群环境下的单点登录和单点注销解决方案

    CAS的集群环境,包括CAS的客户应用是集群环境,以及CAS服务本身是集群环境这两种情况.在集群环境下使用CAS,要解决两个问题,一是单点退出(注销)时,CAS如何将退出请求正确转发到用户sessio ...

  7. kafka集群原理介绍

    目录 kafka集群原理介绍 (一)基础理论 二.配置文件 三.错误处理 kafka集群原理介绍 @(博客文章)[kafka|大数据] 本系统文章共三篇,分别为 1.kafka集群原理介绍了以下几个方 ...

  8. redis 哨兵集群原理及部署

    复制粘贴自: https://www.cnblogs.com/kevingrace/p/9004460.html 请点击此链接查看原文. 仅供本人学习参考, 如有侵权, 请联系删除, 多谢! Redi ...

  9. CEPH集群操作入门--配置

      参考文档:CEPH官网集群操作文档   概述 Ceph存储集群是所有Ceph部署的基础. 基于RADOS,Ceph存储集群由两种类型的守护进程组成:Ceph OSD守护进程(OSD)将数据作为对象 ...

随机推荐

  1. 转 java - java反射机制创建对象

    转 https://blog.csdn.net/nch_ren/article/details/78814080 1.创建service实现类 package com.springstudy.refl ...

  2. 给定一个IP地址,转化为二进制32位,再转化为十进制,写出一个方法让其十进制转为IP地址

    十进制是已知的数值 第一种方法: <script type="text/javascript"> var num=2148140545; var str=num.toS ...

  3. iOS开发 8小时时差问题

    今天调试遇到时间计算的问题,发现怎么算都会有差别,后来仔细观察,发现有8小时的时差…… 这篇文章解释的很好,用到了,因此记之. ios有关时间打印出来差8小时的问题

  4. .Net Core DevOps -免费用Azure四步实现自动化发布(CI/CD)

    前言 linux 大行其道的今天想必大家都已经拥抱 core 了吧,通常的方案都是 gitlab+jenkins+centos,但是这样的方案不适合我这种懒人,一直在寻求简单的解决方案,在寻求方案的过 ...

  5. C++虚函数的工作原理

    静态绑定与动态绑定 讨论静态绑定与动态绑定,首先需要理解的是绑定,何为绑定?函数调用与函数本身的关联,以及成员访问与变量内存地址间的关系,称为绑定. 理解了绑定后再理解静态与动态. 静态绑定:指在程序 ...

  6. StarUML 3.0 破解方法

    首先在我这里下载  StarUML3.0 破解替换文件app.asar 链接:https://pan.baidu.com/s/1wDMKDQkKrE9D1c0YeXz0xg 密码:y65m 然后参照下 ...

  7. 有趣的RPC理解

    RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些传输协议的存在,如TCP或UDP,为通 ...

  8. java学习-NIO(五)NIO学习总结以及NIO新特性介绍

    我们知道是NIO是在2002年引入到J2SE 1.4里的,很多Java开发者比如我还是不知道怎么充分利用NIO,更少的人知道在Java SE 7里引入了更新的输入/输出 API(NIO.2).但是对于 ...

  9. JSmooth 将java代码打包成exe

    JSmooth 将java代码打包成exe 前言 java代码写了这么多了,但由于jdk的限制,我只能在jdk电脑上运行项目.所以最近在研究打包exe这个问题,今天终于实现了. JSmooth下载 前 ...

  10. 洛谷 P1903 [国家集训队]数颜色

    题意简述 给定一个数列,支持两个操作 1.询问l~r有多少不同数字 2.修改某个数字 题解思路 带修莫队 如果修改多了,撤销修改 如果修改少了,进行修改 代码 #include <cmath&g ...