Memcached的原理分析与配置
一、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的原理分析与配置的更多相关文章
- Azure WAF防火墙工作原理分析和配置向导
Azure WAF工作原理分析和配置向导 本文博客地址为:http://www.cnblogs.com/taosha/p/6716434.html ,转载请保留出处,多谢! 本地数据中心往云端迁移的的 ...
- SpringBoot原理分析与配置
1.1 起步依赖原理分析 1.1.1 分析spring-boot-starter-parent 按住Ctrl点击pom.xml中的spring-boot-starter-parent,跳转到了spri ...
- Solr缓存原理分析及配置优化
一.缓存原理 缓存,带来急速性能体验! Solr提供了一系列的内置缓存来优化查询性能.Solr的缓存原理主要涉及以下4个方面: 1.缓存大小及缓存置换法 从缓存大小的角度来看,不能将缓存设置的太大,否 ...
- DBCP连接池原理分析及配置用法
DBCP连接池介绍 ----------------------------- 目前 DBCP 有两个版本分别是 1.3 和 1.4. DBCP 1.3 版本需要运行于 JDK 1.4-1.5 ,支持 ...
- Redis数据持久化机制AOF原理分析一---转
http://blog.csdn.net/acceptedxukai/article/details/18136903 http://blog.csdn.net/acceptedxukai/artic ...
- hystrix ,feign,ribbon的超时时间配置,以及原理分析
背景,网上看到很多关于hystrix的配置都是没生效的,如: 一.先看测试环境搭建: order 服务通过feign 的方式调用了product 服务的getProductInfo 接口 //---- ...
- memcache分布式部署的原理分析
下面本文章来给各位同学介绍memcache分布式部署的原理分析,希望此文章对你理解memcache分布式部署会有所帮助哦. 今天在封装memcache操作类库过程中,意识到一直以来对memcach ...
- Guava Cache 原理分析与最佳实践
前言 目前大部分互联网架构 Cache 已经成为了必可不少的一环.常用的方案有大家熟知的 NoSQL 数据库(Redis.Memcached),也有大量的进程内缓存比如 EhCache .Guava ...
- Android中Input型输入设备驱动原理分析(一)
转自:http://blog.csdn.net/eilianlau/article/details/6969361 话说Android中Event输入设备驱动原理分析还不如说Linux输入子系统呢,反 ...
随机推荐
- 了解使用wireshark抓包工具
一.简介 1.什么是wireshark 百度: Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wires ...
- 【转】DataTable 中数据筛选
转自:http://blog.163.com/yangxw_2009/blog/static/155255217201032931755646/ 对DataTable进行过滤筛选的一些方法Select ...
- 二、SQL Server 2008附加数据库时出错的解决方法
错误中提示“数据库的版本为661,无法打开.此服务器支持655版及更低版本.不支持降级路径”. 这种情况是由于高版本的数据库文件在低版本的数据库上造成的,即我们要附加的数据库文件的版本高于当前SQL ...
- Vue模板语法与常用指令
Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据.在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数,结合相应系统,在应用状态改变时 ...
- ubuntu 单机配置hadoop
前言 因为是课程要求,所以在自己电脑上安装了hadoop,由于没有使用虚拟机,所以使用单机模拟hadoop的使用,可以上传文件,下载文件. 1.安装配置JDK Ubuntu18.04是自带Java1. ...
- 序列化Serializable接口
一.序列化 1.什么是序列化? 序列化就是将对象的状态存储到特定存储介质中的过程,也就是将对象状态转换为可保持或传输格式的过程. 在序列化过程中,会将对象的公有成员.私有成员(包括类名),转换为字节流 ...
- Linux学习笔记05之网络基础知识
一.OSI参考模型:适用于所有网络,现有模型,后有协议 1.应用层:应用程序.用户接口 2.表示层:编码转换.压缩.解压.加密等 3.会话层:建立.维护.拆除会话 4.传输层规定了应用程序的的接口 协 ...
- jenkins下使用python虚拟环境
jenkins下使用python虚拟环境碰到的一些坑: 1. 构建使用window批处理 - 坑1 c: cd c:\xxxxx\xxxxx\scripts activate c: cd c:\xxx ...
- 【iOS】PLA 3.3.12
发件人 Apple Program License Agreement PLA We found that your app uses the Advertising Identifier but d ...
- SpringBoot的yml配置
Spring Boot的yml配置 #开发配置 spring: data: solr: host: http://localhost:6789/solr/mote mvc: view: # 页面默认前 ...