一、Why Memcached?

  • 高并发访问数据库的痛楚:死锁!

  • 硬盘IO之痛:本机:AspNet:HttpRuntime.Cache

  • 多客户端共享缓存

  • Net+Memory>>IO

  • 读写性能完美 Redies:Mm,1S:读取可以1W次。写:10W

  • 超简单集群搭建Cluster

  • 开源Open Source

  • 没有提供主从赋值功能,也没提供容灾等功能,所以所有的代码基本都只是考虑性能最佳

  • 学习成本非常低,入门非常容易

  • 丰富的成功的案例

二、软件从单机到分布式

1、 走向分布式第一步就是解决:多台机器共享登陆信息的问题。

  例如:现在有3台机器组成了一个Web应用集群,其中一台机器登陆,然后其他另外两台机器共享登陆状态?

  • 方案一:AspNet 进程外的Session

  • 方案二:用数据库存储当前登录状态

  • 方案三:Memcache【性能最好,类似的:Redis,NoSql】

三、Memcache基础原理

  • Socket 服务器端

  • 数据:键值对存储

  • 内存处理的算法:

    • 本质就是一个大的哈希表。key最大长度255长度

    • 内存模型:Memcache预先将可支配的内存空间进行分区(Slab),每个分区里再分成多个块(Chunk)最大1MB,但同一个分区里:块的长度(bytes)是固定的。

    • 插入数据,查找适合自己长度的块,然后插入,会有内存浪费。

    • LRU闲置>过期>最小访问

    • 惰性删除:它并没有提供监控数据过期的限制,而是惰性的,当查到某个key数据时,如果过期那么直接抛弃。

  • 集群搭建原理

    • Memcache服务器端并没有提供集群功能,但是通过客户端的驱动程序实现了集群配置。

    • 客户端实现集群的原理:首先客户端配置多台集群机器的ip和端口的列表。然后客户端驱动程序在写入之前,首先对key做哈希处理得到哈希值后对总的机器个数进行取余然后就选择余数对应的机器。

Memcache原理图:

四、Windows下使用Memcache

  • 下载Memcache:https://www.runoob.com/memcached/window-install-memcached.html

  • 将服务程序拷贝到一个磁盘上的目录

  • 安装服务:cmd->Memcached.exe -d install 打开服务监控窗口可以查看服务是否启动(注:Win10安装过程中64位1.4.5报错,换成64位1.4.4没报错,具体什么原因网上也没有详细介绍)

  • 启动服务:cmd->Memcached.exe -d start (restart重启、stop关闭、start启动)

  • 检查服务是否启动:连接到Memcache控制台:telnet ServerIp 11211 输入命令:stats检查当前服务状态

  • 卸载服务:Memcached.exe -d uninstall

安装:

服务安装完成:

启动服务:在memcached上右键->启动

连接Memcache:

注:安装前确保本机电脑上已安装telnet服务

控制面板->程序->启动或关闭Windows功能

连接成功(黑丫丫的一片):

输入第一个命令:stats

参数值

SET(既可以修改,也可以添加,不存在则添加,反之也成立)

 格式:set key flags exptime bytes [noreply] value
其中的含义如下:
  key:键值 key-value 结构中的 key,用于查找缓存值。
  flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
  exptime:在缓存中保存键值对的时间长度(以秒为单位, 表示永远)
  bytes:在缓存中存储的字节数
  noreply(可选): 该参数告知服务器不需要返回数据
  value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)

GET(获得)

 格式: get 键

DELETE(删除)

  格式:delete 键

有不懂的地方,下方留言,觉得对你有帮助的话,帮忙推荐一下,谢谢!明天继续更新.Net如何操作Memcache

Memcached的原理分析与配置的更多相关文章

  1. Azure WAF防火墙工作原理分析和配置向导

    Azure WAF工作原理分析和配置向导 本文博客地址为:http://www.cnblogs.com/taosha/p/6716434.html ,转载请保留出处,多谢! 本地数据中心往云端迁移的的 ...

  2. SpringBoot原理分析与配置

    1.1 起步依赖原理分析 1.1.1 分析spring-boot-starter-parent 按住Ctrl点击pom.xml中的spring-boot-starter-parent,跳转到了spri ...

  3. Solr缓存原理分析及配置优化

    一.缓存原理 缓存,带来急速性能体验! Solr提供了一系列的内置缓存来优化查询性能.Solr的缓存原理主要涉及以下4个方面: 1.缓存大小及缓存置换法 从缓存大小的角度来看,不能将缓存设置的太大,否 ...

  4. DBCP连接池原理分析及配置用法

    DBCP连接池介绍 ----------------------------- 目前 DBCP 有两个版本分别是 1.3 和 1.4. DBCP 1.3 版本需要运行于 JDK 1.4-1.5 ,支持 ...

  5. Redis数据持久化机制AOF原理分析一---转

    http://blog.csdn.net/acceptedxukai/article/details/18136903 http://blog.csdn.net/acceptedxukai/artic ...

  6. hystrix ,feign,ribbon的超时时间配置,以及原理分析

    背景,网上看到很多关于hystrix的配置都是没生效的,如: 一.先看测试环境搭建: order 服务通过feign 的方式调用了product 服务的getProductInfo 接口 //---- ...

  7. memcache分布式部署的原理分析

    下面本文章来给各位同学介绍memcache分布式部署的原理分析,希望此文章对你理解memcache分布式部署会有所帮助哦.   今天在封装memcache操作类库过程中,意识到一直以来对memcach ...

  8. Guava Cache 原理分析与最佳实践

    前言 目前大部分互联网架构 Cache 已经成为了必可不少的一环.常用的方案有大家熟知的 NoSQL 数据库(Redis.Memcached),也有大量的进程内缓存比如 EhCache .Guava ...

  9. Android中Input型输入设备驱动原理分析(一)

    转自:http://blog.csdn.net/eilianlau/article/details/6969361 话说Android中Event输入设备驱动原理分析还不如说Linux输入子系统呢,反 ...

随机推荐

  1. 个人永久性免费-Excel催化剂功能第85波-灵活便捷的批量发送短信功能(使用腾讯云接口)

    微信时代的今天,短信一样不可缺席,大系统都有集成短信接口.若只是临时用一下,若能够直接在Excel上加工好内容就可以直接发送,这些假设在此篇批量群发短信功能中都为大家带来完美答案. 业务场景 不多说, ...

  2. Flume框架的学习使用

    Flume框架的学习使用 Flume简介 Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集.聚集.移动的服务. Flume基于流失架构,容错性强,也很灵活简单 Flume,kafka用 ...

  3. 【HDOJ】2007平方和与立方和

    Problem Description 给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和.   Input 输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成.   ...

  4. [译]为任意网格计算tangent空间的基向量

    +BIT祝威+悄悄在此留下版了个权的信息说: [译]为任意网格计算tangent空间的基向量 Computing Tangent Space Basis Vectors for an Arbitrar ...

  5. 在WebApi项目里使用MiniProfiler并且分析 Entity Framework Core

    在WebApi项目里使用MiniProfiler并且分析 Entity Framework Core 一.安装配置MiniProfiler 在现有的ASP.NET Core MVC WebApi 项目 ...

  6. python课堂整理13---函数的作用域及匿名函数

    name = 'alex' def foo(): name = 'jinling' def bar(): print(name) return bar a = foo() print(a) 阅读上述代 ...

  7. 小白开学Asp.Net Core 《十》

    小白开学Asp.Net Core <十> — — Session.Cookie.Cache(老生常谈) 一.背景 在常谈Session和Cookie之前我们先来简单的了解下Http(可以说 ...

  8. 深入分析Elastic Search的写入过程

    摘要 之前写过一篇ElasticSearch初识之吐槽,不知觉竟然过去了两年了.哎,时光催人老啊.最近又用到了ES,想找找过去的总结文档,居然只有一篇,搞了半年的ES,遇到那么多的问题,产出只有这么点 ...

  9. Nginx搭建详细

    Linux 安装Nginx搭建详细内容 进入:/usr/java/nginx位置下载nginx: wget et http://nginx.org/download/nginx-1.8.0.tar.g ...

  10. Java编程思想之十七 容器深入研究

    17.1 完整的容器分类方法 17.2 填充容器 import java.util.*; class StringAddress { private String s; public StringAd ...