缓存 Memached
https://github.com/enyim/EnyimMemcached
http://www.newasp.net/soft/63735.html#downloaded/
http://blog.csdn.net/zhangyatoua/article/details/50945763
http://download.csdn.net/detail/e_wsq/4358982
https://redislabs.com/lp/memcached-c-sharp/
我的代码
http://git.oschina.net/rocky132/Memached_learn
why Memcached ?
高并发访问数据库,容易造成死锁
磁盘io读写缓慢
多客户端可以共享缓存
Net+memory >> io //从局域网访问另一台机器的内存要比读写io要快
读写性能完美
超简单集群搭建Cluster
开源 open source
没有提供主从赋值功能,也没有提供容灾等功能,所以的代码基本都是只是考虑性能最佳。不能做数据持久化(redis)。
学习成本非常低,入门非常容易
丰富的成功案例
Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。.net httpruntime.cache不支持跨服务器(不支持分布式)。
访问量大的网站有必要用到分布式缓存,小网站没有必要用memcache
Memcached能缓存什么?
通过在内存里维护一个统一的巨大的hash表,Memcached能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
Memcached的缓存是一种分布式的,可以让不同主机上的多个用户同时访问, 因此解决了共享内存只能单机应用的局限,更不会出现使用数据库做类似事情的时候,磁盘开销和阻塞的发生。
资料
原理
memcached分服务器端和客户端,可以配置多个服务器端和客户端,应用于分布式的服务非常广泛。
Memcached是以守护程序(监听)方式运行于一个或多个服务器中,随时会接收客户端的连接和操作。
memcached是一种无阻塞的socket通信方式服务,基于libevent库,由于无阻塞通信,对内存读写速度非常之快。
在 Memcached中可以保存的item数据量是没有限制的,只要内存足够 。
Memcached单进程在32位系统中最大使用内存为2G,若在64位系统则没有限制,这是由于32位系统限制单进程最多可使用2G内存,要使用更多内存,可以分多个端口开启多个Memcached进程 ,
最大30天的数据过期时间,设置为永久的也会在这个时间过期,常量REALTIME_MAXDELTA
最大键长为250字节,大于该长度无法存储,常量KEY_MAX_LENGTH 250控制
单个item最大数据是1MB,超过1MB数据不予存储,常量POWER_BLOCK 1048576进行控制,
它是默认的slab大小
MemCache的工作流程如下:先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性;当分配给memcached内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据, 闲置 > 过期>最少访问
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
内存模型:Memcache预先将可支配的内存空间进行分区(slab),每个分区里再分成多个块(chunk)大小1MB,但同一个分区里 块的长度(bytes)是固定的。不存在内存碎片。
插入数据:查找适合自己长度的块,然后插入,会有内存浪费
惰性删除: 它并没有提供监控数据过期的机制,而是惰性的,当查询到某个key数据时,如果过期那么直接抛弃。
集群搭建原理:
Memcache 服务器端并没有提供集群功能,但是通过客户端的驱动程序实现了集群配置。
客户端实现集群的原理:首先客户端配置多台集群机器的ip和端口的列表。然后客户端驱动程序在写入之前,首先对key做哈希处理得到哈希值后对总的机器的个数进行取余,然后就选择余数对应的机器。
安装memcached 服务
多个web服务器共享缓存
c#操作memcached 代码
转载于:https://www.cnblogs.com/rockywood/p/6523632.html
缓存 Memached相关推荐
- 高性能服务器架构思路(五)——分布式缓存
2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文由韩伟原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/communit ...
- php操作memcache缓存基本方法
memcache 是一个高效的分布式的内存对象缓存系统,他可以支持把php的各种数据(数组,对象,基本数据类型)放在它管理的内存中 1.代码使用 <?php //连接 $mem = new Me ...
- (转自微博) 分布式缓存架构基础
文章不错,与大家共享之 文章转自点击打开链接 对于构建高性能.高可用的大型互联网系统,缓存是不可或缺的组成部分,微博的架构体系也是构建于缓存之上.本次课程介绍分布式缓存的相关知识,希望通过本次课程大家 ...
- Spring中启用Hibernate二级缓存步骤
1.在applicationContext.xml配置文件中SessionFactory bean中配置缓存 <!-- 配置会话工厂对象 --> <bean id="se ...
- Redis 预防缓存穿透“神器” — 布隆过滤器
1. 布隆过滤器 1.1 概念 在架构设计时有一种最常见的设计被称为布隆过滤器,它可以有效减少缓存穿透的情况.其主旨是采用一个很长的二进制数组,通过一系列的 Hash 函数来确定该数据是否存在. 布隆 ...
- 缓存击穿、缓存穿透、缓存雪崩
文章目录 多级缓存架构 缓存击穿 缓存穿透 缓存雪崩 多级缓存架构 在项目架构中,前端发送请求,服务器会先从缓存中获取数据,如果找到数据则直接返回,如果在缓存中没有找到则会去从数据库中获取,数据库取到 ...
- Redis缓存穿透击穿雪崩
目录 1.缓存穿透 2.缓存击穿 3.缓存雪崩 1.缓存穿透 概述: 缓存穿透的概念很简单,用户想要査询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库査询.发现也数据库 ...
- CPU三级缓存技术解析
CPU三级缓存技术解析 cpu存取数据 cpu存取数据大致可以认为是下图的流程(此处图比较简单) cpu拿到需要的内存地址,之后这个地址会被mmu转换成真正的物理地址,接下来会去查接下来查L1 cac ...
- Glide的缓存机制
Glide的缓存分为两个模块,一个是内存缓存,一个是硬盘缓存. 内存缓存的作用是防止应用重复将图片数据读取到内存当中: 硬盘缓存的作用是防止应用重复从网络或其他地方下载和读取数据. Glide的缓存K ...
最新文章
- 与 Scott Guthrie 一道感受技术激情 1月13日于北京
- Livox 开源分享:关于激光雷达去畸变的那些事儿
- 视觉直观感受7种常用排序算法
- SAP CRM BP contact detail - workAddress
- java关于泛型的实验代码_[改善Java代码]强制声明泛型的实际类型
- 小白学 Python 爬虫:Selenium 获取某大型电商网站商品信息
- 修改联想笔记本键盘快捷键
- win8好用吗_小编告诉你win8好用吗?你有用过吗
- 马云:20年后现在50%的工作可能会消失
- Java提高篇——equals()方法和“==”运算符
- quartus仿真19:JK触发器序列1001检测器
- CISCO3560 VLAN配置实例
- 自定义过滤器和标签,动态显示菜单权限
- 海航通信启动通信+大数据战略 海航宽带首次发布
- 【PCB学习笔记】绘制智能车四层板 --- DRC检查,拼版设计及资料输出
- 九歌计算机在线作诗硬件原理,清华大学矣晓沅:「九歌」——基于深度学习的中国古典诗歌自动生成系统...
- css媒体查询iphone4和iphone5
- CSDN第一节课总结
- LOESS局部加权非参数回归
- mysql查询distinct_mysql中select distinct的用法
热门文章
- 【JVM调优】JVM的运行参数
- 关于ajax里面嵌套ajax
- 数据结构和算法基础概述
- 股价相对于转股价溢价的时候,可转债就是折价状态。这就意味着只要正股保持目前的价格,赚钱的概率较高。...
- HDOJ 5373 The shortest problem 【数论】
- css实现图片自适应容器的几种方式
- 2_flutter_TextField(文本框),TabBar(选项卡),bottomNavigationBar(底部导航栏)
- 【微信小程序canvas】实现小程序手写板用户签名(附代码)
- .net mvc web api 返回 json 内容时过滤值为null的属性
- 【最小树形图(奇怪的kruskal)】【SCOI 2012】【bzoj 2753】滑雪与时间胶囊