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 daemon
     Loaded: loaded (/usr/lib/systemd/system/memcached.service; enabled; preset: enabled)
     Active: active (running) since Thu 2024-06-27 10:02:52 UTC; 2s ago
       Docs: man:memcached(1)
   Main PID: 3426 (memcached)
      Tasks: 10 (limit: 4556)
     Memory: 1.8M (peak: 2.7M)
        CPU: 24ms
     CGroup: /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 daemon
     Loaded: loaded (/usr/lib/systemd/system/memcached.service; enabled; preset: enabled)
     Active: active (running) since Thu 2024-06-27 10:02:52 UTC; 7min ago
       Docs: man:memcached(1)
   Main PID: 3426 (memcached)
      Tasks: 10 (limit: 4556)
     Memory: 1.8M (peak: 2.7M)
        CPU: 77ms
     CGroup: /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:~#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huhy~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值