memcached服务介绍

memcached

    • 基础概念
    • 安装使用

基础概念

Memcached 是一个高性能的分布式内存对象缓存系统,用于减少数据库负载,加速动态 Web 应用。

Memcached 的基本概念

  • 缓存:Memcached 的核心功能是缓存数据,它将经常访问的数据存储在内存中,从而减少数据库的负载,提高数据读取速度。
  • 分布式:Memcached 设计为分布式系统,可以将数据分布在多台服务器上,从而提升缓存系统的整体容量和性能。

工作原理

1,键值对存储
Memcached 使用键值对存储数据:

  • 键(Key):一个唯一的标识符,用于检索数据。
  • 值(Value):实际存储的数据,可以是任何二进制数据(字符串、对象等)。

2,哈希算法
Memcached 使用一致性哈希算法将数据分布到不同的服务器上:

  • 一致性哈希:通过哈希函数将键映射到特定的缓存服务器上,保证数据分布的均匀性和负载的均衡性。

3,内存管理
Memcached 采用 LRU(Least Recently Used,最近最少使用)策略管理内存:

  • LRU策略:当内存不足时,Memcached 会删除最早未被访问的数据,以腾出空间存储新的数据。

优点

  • 高性能:由于数据存储在内存中,读写速度极快,通常在毫秒级别。
  • 扩展性:通过增加服务器,可以线性扩展缓存容量和处理能力。
  • 简单易用:Memcached 提供了简单的API,并且有丰富的客户端库支持多种编程语言。

应用场景

  • Web应用加速:缓存数据库查询结果、API响应等,提高网页响应速度,减轻数据库负载。
  • 会话存储:将用户会话数据存储在内存中,提供快速访问,常用于分布式Web应用。
  • 临时数据存储:适用于需要快速访问但不需要持久保存的数据,如临时计算结果、频繁更新的数据等。

安装使用

Ubuntu2204安装

apt install -y memcached
systemctl enable --now memcached

对memcached文件进行参数配置

vi /etc/memcached.conf

-m 64:指定 Memcached 使用的最大内存为 64 MB。注意,这个值是 Memcached 可以增长到的大小,而不是启动时立即占用的大小。

-p 11211:指定 Memcached 的默认监听端口为 11211。

-u memcache:指定运行 Memcached 的用户为 memcache。如果没有指定该参数,默认会以 root 用户运行。

-l 127.0.0.1:指定 Memcached 监听的 IP 地址为 127.0.0.1(本地回环地址),只允许本地访问。

-c 1024:限制同时接受的最大连接数为 1024。默认情况下,这一行是注释掉的,意味着使用守护进程的默认值

当在配置文件中修改参数后需要重启生效

systemctl restart memcached.service

命令运行测试

以守护进程方式运行,最大内存128MB,监听0.0.0.0,端口11212、指定连接限制为2048,使用8个线程,块大小增长因子为1.5,最大项目大小为2MB并以详细模式输出:

memcached -d -u memcache -m 128 -l 0.0.0.0 -p 11212 -c 2048 -t 8 -f 1.5 -I 2m -v

但是使用命令发现一个问题!!就是不会实际生效,只会增加一个进程,暂时不能理解这个问题,如果需要对实际服务进行配置,还是编辑配置文件

例如,我修改配置文件;指定最大内存,监听地址等,可以在服务中查看到

root@huhy:~# systemctl restart memcached.service
root@huhy:~# systemctl status memcached
● memcached.service - memcached daemonLoaded: loaded (/usr/lib/systemd/system/memcached.service; enabled; preset: enabled)Active: active (running) since Thu 2024-06-27 10:02:52 UTC; 2s agoDocs: man:memcached(1)Main PID: 3426 (memcached)Tasks: 10 (limit: 4556)Memory: 1.8M (peak: 2.7M)CPU: 24msCGroup: /system.slice/memcached.service└─3426 /usr/bin/memcached -m 128 -p 11213 -u memcache -l 0.0.0.0 -l ::1 -P /var/run/memcached/memcached.pid

使用命令后;并没有实际修改,反而添加了一个额外的端口和进程

root@huhy:~# memcached -d -u memcache -m 128 -l 0.0.0.0 -p 11212 -c 2048 -t 8 -f 1.5 -I 2m -v
root@huhy:~# systemctl status memcached.service
● memcached.service - memcached daemonLoaded: loaded (/usr/lib/systemd/system/memcached.service; enabled; preset: enabled)Active: active (running) since Thu 2024-06-27 10:02:52 UTC; 7min agoDocs: man:memcached(1)Main PID: 3426 (memcached)Tasks: 10 (limit: 4556)Memory: 1.8M (peak: 2.7M)CPU: 77msCGroup: /system.slice/memcached.service└─3426 /usr/bin/memcached -m 32 -p 11213 -u memcache -l 127.0.0.1 -l ::1 -P /var/run/memcached/memcached.pid
Jun 27 10:02:52 huhy systemd[1]: Started memcached.service - memcached daemon.
root@huhy:~# ss -tlun | grep 11
tcp   LISTEN 0      1024         0.0.0.0:11213      0.0.0.0:*
tcp   LISTEN 0      1024         0.0.0.0:11212      0.0.0.0:*
tcp   LISTEN 0      1024           [::1]:11213         [::]:*
root@huhy:~# ps -aux| grep mem
memcache    3426  0.0  0.1 412124  4736 ?        Ssl  10:02   0:00 /usr/bin/memcached -m 128 -p 11213 -u memcache -l 0.0.0.0 -l ::1 -P /var/run/memcached/memcached.pid
memcache    3470  0.0  0.0 707740  3132 ?        Ssl  10:10   0:00 memcached -d -u memcache -m 128 -l 0.0.0.0 -p 11212 -c 2048 -t 8 -f 1.5 -I 2m -v
root        3498  0.0  0.0   6544  2304 pts/0    S+   10:12   0:00 grep --color=auto mem
root@huhy:~#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/36672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ECMAScript6介绍及环境搭建

这实际上说明,对象的解构赋值是下面形式的简写。 let { foo: foo, bar: bar } { foo: ‘aaa’, bar: ‘bbb’ }; 也就是说,对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而…

数据结构_绪论

1.数据结构的研究内容 研究数据的特性和数据之间的关系 用计算机解决一个问题的步骤 1.具体问题抽象成数学模型 实质: 分析问题--->提取操作对象--->找出操作对象之间的关系(数据结构)--->用数学语言描述 操作对象对象之间的关系 2.设计算法 3.编程,调试,运行 …

GO语言面试题目,使用3个协程按照顺序从1打印到100

GO语言面试题目,使用3个协程按照顺序从1打印到100 稍微把题目拓展了下,使用N个协程 打印M个数,应该很好理解,创建一个N个协程的列表,然后每打印一个数,就传到下一个chan中,一次循环 package m…

【数据结构与算法】哈希函数 详解

哈希函数的构造方法有哪些? 直接定址法:直接使用关键字或者关键字的某个线性函数值作为哈希地址。 数字分析法:对关键字进行分析,选择关键字中的某几位或者进行某种运算得到的结果作为哈希地址。 平方取中法:先计算关…

通信协议总结

IIC 基本特点 同步,半双工 标准100KHz,最高400KHz(IIC主要应用于低速设备) 硬件组成 需外接上拉电阻 通信过程 空闲状态 SDA和SCL都处于高电平 开始信号S和终止信号P 在数据传输过程中,当SCL0时,SDA才…

十常侍乱政 | 第2集 | 愿领精兵五千,斩关入内,册立新君,诛杀宦党,扫清朝廷,以安天下 | 三国演义 | 逐鹿群雄

🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 📌这篇博客是毛毛张分享三国演义文学剧本中的经典台词和语句,本篇分享的是《三国演义》第Ⅰ部分《群雄逐鹿》的第2️⃣集《十常侍乱政治》&am…

汇聚荣做拼多多运营第一步是什么?

汇聚荣做拼多多运营第一步是什么?在众多电商平台中,拼多多凭借其独特的社交电商模式迅速崛起,吸引了大量消费者和商家的目光。对于希望在拼多多上开店的商家而言,了解如何进行有效运营是成功的关键。那么,汇聚荣做拼多多运营的第…

【Android面试八股文】Looper如何在子线程中创建?

文章目录 一、Looper的几个重要方法二、子线程中使用Looper的方式1三、子线程中使用Looper的方式23.1 使用HandlerThread实现3.2 HandlerThread源码解析创建子线程的 Looper必须要通过 Looper.prepare()初始化looper,然后再通过 Looper.loop()方法让 Loop运行起来。 那么具…

算法入门:二分查找及其Java实现

在程序开发中,算法是解决问题的核心。本篇博客将详细讲解一种高效的查找算法——二分查找,并通过Java代码示例帮助你理解其实现和应用。 如果你觉得这篇文章对你有帮助,不要忘记点赞、收藏和关注我,这将是对我最大的支持和鼓励&am…

VMware 最新的安全漏洞公告VMSA-2024-0013

#深度好文计划# 一、摘要 2024年6月26日,VMware 发布了最新的安全漏洞公告 VMSA-2024-0013,修复了 VMware ESXi 和 VMware vCenter 中的多个安全漏洞。 VMSA-2024-0013:VMware ESXi 和 vCenter Server 更新修正了多个安全性漏洞 &#xff…

Unity3D 物体的运动

运动方式1 修改 position / localPosition ,可以让物体运动 例如, Vector3 pos this.transform.localPosition; pos.z distance; this.transform.localPosition pos; 此时,小车向Z 方向运动 具体代码如下 using System.Collection…

C语言入门课程学习笔记10:结构体联合体位域

C语言入门课程学习笔记10 第48课 - 自定义数据类型(上)实验-typedef实验小结 第49课 - 自定义数据类型(中)实验实验小结 第50课 - 自定义数据类型(下)实验实验小结 第51课 - 多文件程序设计实验实验实验小结…

uni-app picker多列选项

预期实现的效果&#xff1a; 选中后的效果&#xff1a; // Dom部分 <template><picker mode"multiSelector" :range"ssqRange" range-key"name" columnchange"ssqColumnChange" change"ssqChange" class"p…

研究发现GPT-4o等较新的多模态AI模型的安全机制有不足之处

在 ChatGPT 和类似的生成式人工智能模型推出后&#xff0c;很多人都在强调安全问题&#xff0c;政府也参与其中&#xff0c;OpenAI 甚至成立了一个超级协调小组&#xff0c;以阻止未来的人工智能失控&#xff0c;但由于对人工智能安全的发展方向存在分歧&#xff0c;该小组于今…

03逻辑门电路

分立门电路&#xff1a; 集成门电路&#xff1a; TTL门电路 MOS门电路&#xff1a;NMOS门电路、PMOS门电路、CMOS门电路 BICMOS门电路&#xff1a;CMOS的高输入阻抗和TTL的高放大倍数的结合 向更低功耗、更高速度发展 MOS管的Rdson在可变电阻区的阻值也一般会小于1000欧姆 …

达梦数据库的系统视图v$locked_object

达梦数据库的系统视图v$locked_object 在达梦数据库&#xff08;Dameng Database&#xff09;中&#xff0c;V$LOCKED_OBJECT 视图提供了与数据库中被锁定对象相关的信息。这通常用于监控和诊断数据库中的锁定问题&#xff0c;帮助管理员了解哪些对象被锁定了&#xff0c;以及…

1.回溯算法.基础

1.回溯算法 基础知识题目1.组合2.组合-优化3.组合总和|||4.电话号码和字母组合5.组合总和6.组合总和II7.分割回文串8.复原IP地址 基础知识 回溯法也可以叫做回溯搜索法&#xff0c;它是一种搜索的方式。回溯是递归的副产品&#xff0c;只要有递归就会有回溯 因为回溯的本质是穷…

Excel 宏录制与VBA编程 —— 11、工作表及工作簿操作(附:Worksheets与Sheets区别)

代码1 - Worksheets与Sheets区别 Worksheets表示普通工作表;Sheets即可表示普通工作表也可表示图标工作表。 下面模块中代码结果是一样的,大家理解时可结合上面区别说明进行了解 Sub Test()Worksheets("Sheet1").Range("A1").Value 100Sheets("Sheet…

BioCLIP:物种图像的基础视觉模型

从无人机到个人手机&#xff0c;各种相机收集的自然世界图像是越来越丰富的生物信息来源。从图像中提取生物相关信息用于科学的计算方法和工具激增&#xff0c;尤其是计算机视觉。然而&#xff0c;其中大多数都是为特定任务设计的&#xff0c;不容易适应或扩展到新的问题、环境…

【编程知识】什么是编译型语言?什么是解释型语言?

1.编译型语言&#xff1a; 源代码由编译器编译为机器代码&#xff08;中间代码&#xff09;&#xff0c;生成可执行文件&#xff0c;后面的执行无需编译&#xff0c;可以直接运行&#xff0c;无需依赖源代码或编译器。 执行速度更快&#xff0c;因为在执行前已经有一步编译阶段…