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接口

这里就不过多介绍了

相关推荐
weixin_4352470618 分钟前
微服务开发规范模版
微服务·云原生
是店小二呀22 分钟前
鸿蒙PC_Dart-Sass-ohos适配全记录
linux·运维·windows
智能运维指南7 小时前
代码管理软件如何融入 DevOps 工具链?全链路联通的 5 个关键点
运维·devops·信创适配·嘉为蓝鲸
两点王爷7 小时前
PostgreSQL 常用 SQL 语句与 GIS 相关函数详解
数据库·后端
两点王爷7 小时前
PostgreSQL 好用又独特的特性与空间函数
数据库
充电zcx7 小时前
Linux:4:开发工具详解
linux·运维·服务器
梦帮科技7 小时前
AI 音乐产品的发布工程:验证门、数据发布、回滚与生产运维纪律
数据结构·数据库·架构·node.js·音视频·动态规划·推荐算法
TDengine (老段)9 小时前
TDengine 常见问题 TOP3
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
HanhahnaH9 小时前
Redis单线程和Tair多线程架构设计对比
分布式·缓存
rustfs9 小时前
MinIO 国产开源平替正式 GA
分布式·docker·云原生·rust