Memcached构建缓存服务器

一: 前言

许多Web应用都将数据保存到 RDBMS(RDBMS即关系数据库管理系统(Relational Database Management System))中,应用服务器从中读取数据并在浏览器中显示。 但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、 网站显示延迟等重大影响。Memcached/redis是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web等应用的速度、 提高可扩展性。

二: 简介

缓存服务器的作用:

  • 加快访问速度 缓解数据库压力

NOSQL名词解释:

  • Not Only SQL
  • 为弥补关系型数据库的不足,各种各样的NoSQL数据库应运而生
  • 以键值对的方式存储数据
  • 缓存数据库

NOSQL产品:

  • redis
  • memcached
  • mongoDB

三: Memcached

1.0 特点

  • 内置内存存储方式: 重启操作系统会导致全部数据消失
  • 简单key/value存储: 服务器不关心数据本身的意义及结构,只要是可序列化数据即可。 存储项由"键、过期时间、可选的标志及数据"四个部分组成
  • 不互相通信的分布式: memcached尽管是"分布式"缓存服务器,但服务器端并没有分布式功能。 各个memcached不会互相通信以共享信息。那么,怎样进行分布式呢? 这完全取决于客户端的实现。

2.0 支持的平台

  • Linux
  • FreeBSD
  • Solaris (memcached 1.2.5以上版本)
  • Mac OS X
  • Windows

3.0 服务框架

原理:

  • 1.检查用户请求的数据是缓存中是否有存在,如果有存在的话,只需要直接把请求的数据返回,无需查询数据库。
  • 2.如果请求的数据在缓存中找不到,这时候再去查询数据库。返回请求数据的同时,把数据存储到缓存中一份。
  • 3.保持缓存的"新鲜性",每当数据发生变化的时候(比如,数据有被修改,或被删除的情况下),要同步的更新缓存信息,确保用户不会在缓存取到旧的数据。

4.0 实施

(1) 安装

  • 采用yum安装
bash 复制代码
[root@localhost ~]# yum -y install memcached

(2) 修改配置文件

bash 复制代码
#vim  /etc/sysconfig/memcached 

PORT="11211"   //同台机编译安装多个memcached,多实例
USER="memcached"
MAXCONN="1024"
CACHESIZE="1500"            //单位是 MB
OPTIONS=""          //监听的网络地址

(3) 启动

bash 复制代码
[root@localhost ~]# systemctl start memcached.service

[root@localhost ~]# ps aux | grep memca
memcach+   1662  0.0  0.0 344096  1668 ?        Ssl  13:45   0:00 /usr/bin/memcached -u memcached -p 11211 -m 1500 -c 1024
root       1669  0.0  0.0 112728   968 pts/0    S+   13:45   0:00 grep --color=auto memca
[root@localhost ~]# 

(4) 测试

  • 1.使用memcached的原始命令
bash 复制代码
# 连接

[root@localhost ~]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.  # 表示已经连接成功了,按下ctrl + ] 可以退出

# set 语法
set <key> <flags> <过期秒数> <数据长度>
<值内容>


# 设置一个变量
set name 1 900 3
pzx
STORED
get name
VALUE name 1 3
pzx
END
  • 2.使用各个编程语言的API接口

这里就不过多介绍了

相关推荐
NineData27 分钟前
NineData 与平凯数据库(TiDB 企业版)完成产品兼容性互认证
数据库·tidb·ninedata·玖章算术·平凯数据库·产品兼容性认证·tidb企业版
咖啡星人k36 分钟前
2026 Text-to-SQL:一句话让 AI 写 SQL,自然语言直接查数据库(MonkeyCode 云端实战)
数据库·机器学习·语言模型·自然语言处理
GreatSQL社区38 分钟前
少敲一个字母,GreatSQL 对所有查询“已读不回”
数据库·mysql·greatsql
Jul1en_43 分钟前
【Java 脚手架】封装通用工具类-3
java·开发语言·redis·缓存·ai·bootstrap·rabbitmq
醉颜凉1 小时前
Elasticsearch服务器部署:从零到一完整启动+配置教程
大数据·服务器·elasticsearch
攻城有术1 小时前
专项攻克——研发排查Linux各类问题命令+实战案例
linux·运维·服务器
wangchunyu1141 小时前
PostgreSQL 入门与实践:从零搭建一个 CRUD 应用
数据库·postgresql
涛思数据(TDengine)1 小时前
从_找根因_到_搭系统_:工业 AI 实战直播(十、十一期)
大数据·数据库·人工智能·时序数据库·tdengine
showyoui1 小时前
一次被 Istio 误导的连通性测试
云原生·istio