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(既可以修改,也可以添加,不存在则添加,反之也成立)

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

GET(获得)

1 格式: get 键

DELETE(删除)

1  格式:delete 键

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

原文地址:https://www.cnblogs.com/chenyanbin/p/11415368.html

时间: 2024-09-28 18:45:51

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

SpringBoot原理分析与配置

1.1 起步依赖原理分析 1.1.1 分析spring-boot-starter-parent 按住Ctrl点击pom.xml中的spring-boot-starter-parent,跳转到了spring-boot-starter-parent的pom.xml,xml配置如下(只摘抄了部分重点配置): <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-de

Redis数据持久化机制AOF原理分析二

Redis数据持久化机制AOF原理分析二 分类: Redis 2014-01-12 15:36  737人阅读  评论(0)  收藏  举报 redis AOF rewrite 目录(?)[+] 本文所引用的源码全部来自Redis2.8.2版本. Redis AOF数据持久化机制的实现相关代码是redis.c, redis.h, aof.c, bio.c, rio.c, config.c 在阅读本文之前请先阅读Redis数据持久化机制AOF原理分析之配置详解文章,了解AOF相关参数的解析,文章链

memcache分布式部署的原理分析

下面本文章来给各位同学介绍memcache分布式部署的原理分析,希望此文章对你理解memcache分布式部署会有所帮助哦. 今天在封装memcache操作类库过程中,意识到一直以来对memcache的使用都是局限在单台服务器的情况下,还没有使用到memcache的分布式部署.虽然知道memcache的分布式是怎么回事,但是为了更加深入的理解,还是通过谷歌搜索了这方面的相关资料. 下面是精摘于网络的一些关于 memcache分布式部署 的资料. memcache分布式部署是什么呢?下面通过一个例子

kafka producer实例及原理分析

1.前言 首先,描述下应用场景: 假设,公司有一款游戏,需要做行为统计分析,数据的源头来自日志,由于用户行为非常多,导致日志量非常大.将日志数据插入数据库然后再进行分析,已经满足不了.最好的办法是存日志,然后通过对日志的分析,计算出有用的数据.我们采用kafka这种分布式日志系统来实现这一过程. 步骤如下: 搭建KAFKA系统运行环境 如果你还没有搭建起来,可以参考我的博客: http://zhangfengzhe.blog.51cto.com/8855103/1556650 设计数据存储格式

centos7的selinux的原理及相关配置

centos7的selinux的原理及相关配置 SELinux的全称是Security Enhanced Linux, 就是安全加强的Linux.在SELinux之前,root账号能够任意的访问所有文档和服务:如果某个文件设为777,那么任何用户都可以访问甚至删除:这种方式称为DAC(主动访问机制),很不安全. DAC 自主访问控制: 用户根据自己的文件权限来决定对文件的操作,也就是依据文件的own,group,other/r,w,x权限进行限制.Root有最高权限无法限制.r,w,x权限划分太

spi协议及工作原理分析

转自----http://blog.csdn.net/skyflying2012/article/details/11710801 一.概述. SPI, Serial Perripheral Interface, 串行外围设备接口, 是 Motorola 公司推出的一种同步串行接口技术. SPI 总线在物理上是通过接在外围设备微控制器(PICmicro) 上面的微处理控制单元 (MCU) 上叫作同步串行端口(Synchronous Serial Port) 的模块(Module)来实现的, 它允

深入理解HTTP协议、HTTP协议原理分析

深入理解HTTP协议.HTTP协议原理分析 目录(?)[+] http协议学习系列 1. 基础概念篇 1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本.其中最著名的就是RFC 26

Java Annotation原理分析(一)

转自:http://blog.csdn.net/blueheart20/article/details/18725801 小引: 在当下的Java语言层面上,Annotation已经被应用到了语言的各个方面,它已经在现在的ssh开发中,通过Annotation极大的提高了开发的效率,堪称开发神器.在这篇文章中,我们来了解一下的Annotation在Java中的前身今世吧. 1.   Java Annotation因何而来? 最初从印象中,是可以替代之前JDK1.4开发中,大量繁琐的配置项,Ann

Spring Security4实战与原理分析视频课程( 扩展+自定义)

Spring Security概述与课程概要介绍 Spring Security快速入门(基于XML) Spring Security快速入门(基于XML) URL匹配详解 自定义登陆 配置退出 Ajax登陆退出 JDBC认证 层级角色关系 认证体系介绍 自定义认证 匿名认证 认证流程分析 配置权限 授权体系介绍 自定义授权 自定义JDBC授权 表达式权限原理分析 表达式权限扩展 自定义异常处理 过滤器分析 过滤器应用 FilterChainProxy初始化流程分析 授权流程分析 Spring