Memcached学习
一、概念
Memcached是一个开源的,高性能的内存缓存软件,从名称上看Mem就是内存,二cache是缓存。作用通过在事先规划好的内存空间中临时缓存数据库中的各类数据,以达到减少业务对数据库的直接高并发访问,从而达到提升数据库的访问性能,加速网站集群动态应用服务的能力。
应用场景:
1、作为数据库的前端缓存应用
a、完整缓存(易),静态缓存
b、热点缓存(难)
2、作业集群的session会话共享存储
二、Memcached服务分布式集群实现
1、程序端实现,程序加载所有mc的ip列表,通过对key做hash算法
2、负载均衡器,通过对key做hash,一致哈希算法的目的是不但保证每个对象只请求一个对应的服务器,而且当节点宕机,缓存服务器的更新重新分配比例降到最低
三、Memcached服务特点及工作原理
1、完全基于内存缓存的
2、节点之间相互独立
3、C/S模式机构、C语言编写
4、异步I/O模型,使用libevent作为事件通知机制
5、被缓存的数据以key/value键值对形式存在的
6、全部数据存放于内存中,无持久性存储的设计,重启服务器,内存里的数据会丢失
7、当内存中的缓存的数据容量达到启动时设定的内存值时,就自动使用LRU算法删除过期的缓存数据
8、可以对存储的数据设置过期时间,过期后的数据自动被清除,服务本身不会监控过期,而且在访问的时候查看key的时间戳,判断是否过期
9、Memcache会对设定的内存进行分开,再把块分组,然后再提供服务
四、Memcached内存管理机制原理
利用 Slab Allocation 机制来分配和管理内存。Slab Allocation 机制原理是按照预先规定的大小,将分配给 memcached 的内存分割成特定长度的内存块(chunk),再把尺寸相同的内存块,分成组(chunks slab class),这些内存块不会释放,可以重复利用。
五、Memcached工作
Memcached 的神奇来自两阶段哈希(two-stage hash)。Memcached 就像一个巨大的、存储了很多<key,value>对的哈希表。通过 key,可以存储或查询任意的数据。客户端可以把数据存储在多台memcached 上。当查询数据时,客户端首先参考节点列表计算出 key 的哈希值(阶段一哈希),进而中一个节点;客户端将请求发送给选中的节点,然后 memcached 节点通过一个内部的哈希算法(阶段二
哈希),查找真正的数据(item)。
六、Memcached最大优势
Memcached 最大的好处就是它带来了极佳的水平可扩展性,特别是在一个巨大的系统中。由于客户端自己做了一次哈希,那么我们很容易增加大量 memcached到集群中。memcached 之间没有相互通信,因此不会增加 memcached 的负载;没有多播协议,不会网络通信量爆炸(implode)。memcached 的集群很好用。内存不够了?增加几台 memcached 吧;CPU 不够用了?再增加几台吧;有多余的内存?在增加几台吧,不要浪费了。基于 memcached 的基本原则,可以相当轻松地构建出不同类型的缓存架构。
七、Memcached和服务器的local cache相比的优缺点
首先,local cache 有许多与上面(query cache)相同的问题。local cache 能够利用的内存容量受到(单台)服务器空闲内存空间的限制。不过,local cache 有一点比 memcached 和 query cache 都要好,那就是它不但可以存储任意的数据,而且没有网络存取的延迟。
local cache 的数据查询更快。考虑把 highly common 的数据放在 localcache 中吧。如果每个页面都需要加载一些数量较少的数据,考虑把它们放在local cached 吧。
local cache 缺少集体失效(groupinvalidation)的特性。在 memcached 集群中,删除或更新一个 key 会让所有的观察者觉察到。但是在local cache中, 我们只能通知所有的服务器刷新cache(很慢,不具扩展性),或者仅仅依赖缓存超时失效机制。
八、Memcached的cache机制
Memcached 主要的 cache 机制是 LRU(最近最少用)算法+超时失效。当您存数据到 memcached 中,可以指定该数据在缓存中可以呆多久 Which is forever,or some time in the future。如果 memcached 的内存不够用了,过期的 slabs会优先被替换,接着就轮到最老的未被使用的 slabs。
相关文章:
Memcached学习
一、概念 Memcached是一个开源的,高性能的内存缓存软件,从名称上看Mem就是内存,二cache是缓存。作用通过在事先规划好的内存空间中临时缓存数据库中的各类数据,以达到减少业务对数据库的直接高并发访问,从而达到提升数…...
2024最新金三银四软件测试面试题
一直以来大大小小参与过不少面试,遇到过不少坑,但是没来的及好好总结汇总下。现在把之前遇到的问题汇总下,希望以后自己能加深印象。 1、appium 怎么定位toast弹框 appium1.6以后回答需要升级u2进行定位。 2、什么是事务,知道事…...
微信小程序动态加载图表[echart]
1.引入Echarts (1)将ec-canvas文件拷贝下来放到你自己的项目中: (2)在你需要使用Echarts的页面的json文件中引入Echarts "usingComponents": {"ec-canvas": "../utils/ec-canvas/ec-canva…...
《opencv实用探索·十八》Camshift进行目标追踪流程
CamShift(Continuously Adaptive Mean Shift)是一种用于目标跟踪的方法,它是均值漂移(Mean Shift)的扩展,支持对目标的旋转跟踪,能够对目标的大小和形状进行自适应调整。 cv::CamShift和cv::me…...
MAP: Multimodal Uncertainty-Aware Vision-Language Pre-training Model
问题 多模态语义理解通常需要处理不确定性,这意味着获得的消息往往涉及多个目标。这种不确定性对我们的解释来说是有问题的,包括模式间和模式内的不确定性。人们很少研究这种不确定性的建模,特别是在未标记数据集的预训练和特定任务下游数据…...
【SpringCache】快速入门 通俗易懂
1. 介绍 Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。 Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如: EHCache Caffeine Redis(常用…...
GeoTools学习笔记
Feature要素: 例子:Csv2Shape.java 创建要素,先创建FeatureType,再创建Feature 根据FeatureCollection,可以创建shapefile https://docs.geotools.org/latest/userguide/library/main/data.html API详解:…...
短剧规模达到了百亿元,短剧分销成为短剧新模式
我国短剧市场规模直接突破了三百多亿元,目前已经是互联网的一大创业风口! 一、短剧特点 在当下快节奏的生活中,短剧具有的快节奏、剧情紧凑的特点,符合大众对影视的需求。目前我国的短剧题材主要是言情、总裁、赘婿等࿰…...
Kotlin 中的 `as` 关键字:类型转换的艺术
在 Android 编程中,类型转换是一项常见的操作。为了使这一过程更加流畅和安全,Kotlin 提供了 as 关键字。本文将深入探讨 as 关键字的用法和最佳实践。 一、as 关键字的基本概念 🚀 as 关键字在 Kotlin 中用于显式类型转换。它将一个表达式…...
CDN可以给企业网站带来哪些优势?
企业网站带来哪些优势?现在企业最关心的问题,就是我的网站能不能打开,用户访问到的是不是正常的页面,网站是否能够正常运营,而互联网是 一个开放式的平台,网站是否能够正常运营和很多因素都有关系ÿ…...
离线运行Oracle Database In-Memory Advisor
概念 离线运行Oracle Database In-Memory Advisor,就是不在生产系统上运行。这样可以避免影响生产系统。但需要从生产系统导出以下的数据: AWR DumpAWR补充数据 过程 导出AWR Dump 连接到CDB root运行。 SQL> connect / as sysdba SQL> ?/r…...
2,PyCharm的下载与安装
1,PyCharm的下载 a:打开PyCharm官网,并选择Developer Tools → PyCharm Pycharm官网地址 b:点击Download c:下载完成后,会在下载文件夹中,出现“pycharm-professional-2023.3.exe”文件 2&a…...
HNU计算机视觉作业一
前言 选修的是蔡mj老师的计算机视觉,上课还是不错的,但是OpenCV可能需要自己学才能完整把作业写出来。由于没有认真学,这门课最后混了80多分,所以下面作业解题过程均为自己写的,并不是标准答案,仅供参考 …...
Java:SpringBoot获取当前运行的环境activeProfile
代码示例 /*** 启动监听器*/ Component public class AppListener implements ApplicationListener<ApplicationReadyEvent> {Overridepublic void onApplicationEvent(ApplicationReadyEvent event) {// 获取当前的环境,如果是test,则直接返回Co…...
射频功率放大器的参数有哪些
射频功率放大器是射频通信系统中重要的组件,用于将输入的射频信号放大到需要的功率水平。在设计和选择射频功率放大器时,需要考虑多种参数。下面西安安泰将详细介绍射频功率放大器的常见参数。 1、P1dB功率压缩点 当放大器的输入功率比较低时,…...
3-5、多态性
语雀原文链接 文章目录 1、多态类型2、上下转型3、instanceof 1、多态类型 编译时多态:方法重载 在编译阶段就已经确定要调用哪个重载的方法 运行时多态:方法重写 具体调用哪个子类的方法要到运行的时候,结果才能确定,多态只针对…...
什么是https 加密协议?
什么是https 加密协议? 加密通信的作用加密原理数字证书SSL/TLS 协议部署和使用重要性 HTTPS(Hyper Text Transfer Protocol Secure)是一种网络传输协议,它是基于HTTP协议的扩展,通过加密通信内容来保障数据传输的安全…...
低压无功补偿在分布式光伏现场中的应用
摘要:分布式光伏电站由于建设时间短、技术成熟、收益明显而发展迅速,但光伏并网引起用户功率因数异常的问题也逐渐凸显。针对分布式光伏电站接入配电网后功率因数降低的问题,本文分析了低压无功补偿装置补偿失效的原因,并提出了一…...
人工智能技术在宽域飞行器控制中的应用
近年来,以空天飞行器、高超声速飞行器等 ̈1 为典型代表的宽域飞行器蓬勃发展,如图1所示,其 不仅对高端装备制造、空间信息以及太空经济等领 域产生辐射带动作用,进一步提升了中国在航空航 天领域的自主创新能力,同时也…...
NGINX高性能服务器与关键概念解析
目录 1 NGINX简介2 NGINX的特性3 正向代理4 反向代理5 负载均衡6 动静分离7 高可用8 结语 1 NGINX简介 NGINX(“engine x”)在网络服务器和代理服务器领域备受推崇。作为一款高性能的 HTTP 和反向代理服务器,它以轻量级、高并发处理能力以及…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...
