高性能内存对象缓存

news2024/11/16 5:41:22

Memcached概述

        一套开源的高性能分布式内存对象缓存系统

        所有的数据都存储在内存中

        支持任意存储类型的数据

        提高网站的访问速度

        

数据存储方式与数据过期方式

        数据存储方式:Slab Allocation

                按组分配内存,每次先分配一个Slab,相当于一个大小为1M的页,然后在1M的空间里根据数据划分大小的Chunk 

        数据过期方式

                LRU:数据空间不足时,会根据LRU的情况淘汰最近最少使用的记录

                Laxzy Expiration :惰性过期,是指使用get时查看记录时间,从而检查记录是否已经过期

部署Memcached实验

        1.修改主机名

        2.在memcache01节点上

                1.上传软件包(libevent-2.1.8-stable.tar.gz,memcached-1.5.1.tar.gz)

                2.下载依赖包

yum -y install gcc gcc-*
tar -zxvf libevent-2.1.8-stable.tar.gz -C /usr/src/
cd /usr/src/libevent-2.1.8-stable/
./configure --prefix=/usr/local/libevent
make && make install
cd
tar -zxvf memcached-1.5.1.tar.gz -C /usr/src/
cd /usr/src/memcached-1.5.1/
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
make && make install
cd
/usr/local/memcached/bin/memcached -d -m 128 -u root

                单节点部署成功 

        3.在memcache02节点上

                1.上传软件包(libevent-2.1.8-stable.tar.gz)

                2.下载依赖

yum -y install gcc gcc-*
tar -zxvf libevent-2.1.8-stable.tar.gz -C /usr/src/
cd /usr/src/libevent-2.1.8-stable/
./configure --prefix=/usr/local/libevent
make && make install

        4.操作使用

               1.切换第三台机器(充当客户端)

                2.安装telnet

#类似ssh,主要用于远程登录服务。然而,在某些情况下,这个命令可能只会安装telnet客户端或同时包含客户端和服务器的软件包(如果存在这样的包)
yum -y install telnet

                3.使用telnet管理数据库 

#连接的第一台的IP地址,memcache的端口号
telnet 192.168.27.140 11211

                         添加一个数据,查询数据(第一个0 ,定义的是标记信息,第二个0是过期时间,0是永不过期。第三位数是数据内容长度必须是这个,否则不生效,或者报错)

                         修改一个数据(不仅可以修改数据,还能充当add添加的功能)

                                删除数据

                                清空数据

                                退出(ctrl+} 回车输入quit即可退出telnet)

                4.使用php软件管理

                        1.安装软件包

yum install httpd php php-devel zlib-devel -y

echo '<?php phpinfo(); ?>' > /var/www/html/info.php
systemctl start httpd

                         2.安装完成后,浏览器访问测试安装

http://192.168.27.139/info.php

                                 3.安装引入模块

                                        1.上传依赖包(libmemcached-1.0.18.tar.gz  被 memcached-2.2.0.tgz依赖,所以需要两个包)

                                        2.安装

yum -y install gcc gcc-*
tar -xzvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18/
./configure --prefix=/usr/local/libmemcached --with-memcached=/usr/local/memcached
make && make install
cd

                                        3.安装memcache

tar zxf memcached-2.2.0.tgz
cd memcached-2.2.0


#使用phpize生成./config命令
phpize
#拷贝php支持文件
cp -r /usr/include/php/ext/ ./

# 配置时使用--disable-memcached-sasl 选项,关闭 Memcached 的 SASL 认证功能,否则会报错
# --with-php-config获取php的信息
./configure \
--enable-memcached \
--with-php-config=/usr/bin/php-config \
--with-libmemcached-dir=/usr/local/libmemcached \
--disable-memcached-sasl

make
make test
make install

                                        4.执行完毕后,在执行一次make install 生成一下php存放的路径

#执行完上诉操作后,会有一个发送邮件的提示,输入n拒绝

make install
#打开配置文件,调整内容
vi /etc/php.ini
extension_dir = "/usr/lib64/php/modules/"
extension=memcached.so

                                        重启服务 

systemctl restart httpd

                刷新网页,查看是否有下图内容,有则memcache即可使用

                        验证memcache是否可用

                                打开网页验证

vi /var/www/html/test.php
<?php
  $memcache = new Memcached();
  $memcache->addServer('192.168.27.140', 11211);
  $memcache->set('key', 'Memcache test successful!', 0, 60);
  $result = $memcache->get('key');
  unset($memcache);
  echo $result;
?>

                                 网页验证(IP为第三台IP)

        部署 带有复制功能的memcache

                1.在第一台机器上关闭冲突启动

pkill memcached

                2.在两台memcache节点上上传软件包(memcached-1.2.8-repcached-2.2.tar.gz) 

                3. 安装

tar zxf memcached-1.2.8-repcached-2.2.tar.gz
cd memcached-1.2.8-repcached-2.2

./configure --prefix=/usr/local/memcached_replication --enable-replication --with-libevent=/usr/local/libevent

                        1.安装之前要调整代码

vi memcached.c

                        2.删除标记两行

                        3.编译安装

make && make install

                 4.在memcache01节点上

ln -s /usr/local/libevent/lib/libevent-2.1.so.6 /usr/lib64/
#IP指向memcache02的IP
/usr/local/memcached_replication/bin/memcached -d -u root -m 128 -x 192.168.27.130

                 5.在memcache02节点上

ln -s /usr/local/libevent/lib/libevent-2.1.so.6 /usr/lib64/
#IP指向memcache01的IP
/usr/local/memcached_replication/bin/memcached -d -u root -m 128 -x 192.168.27.140

                6.在第三台机器验证。

#连接第一台机器
telnet 192.168.27.140 11211

                7.高可用

                        1.在memcache01 memcache02节点安装 keepalived

cd
yum -y install keepalived

                        2.在memcache01节点

#打开配置文件
vi /etc/keepalived/keepalived.conf
#删除所有内容

                        3.删除所有内容,替换一下内容,按图修改内容

! Configuration File for keepalived

global_defs {
   router_id LB01
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.27.200
    }
}

virtual_server 192.168.27.200 11211 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP
#对向节点的IP,即memcache02的IP
    sorry_server 192.168.27.129 11211
#本节点的IP
    real_server 192.168.27.128 11211 {
        weight 1
    notify_down /root/memcached.sh
    TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 11211
        }
    }
}

                                4.保存退出,切换memcache02节点 

                                5.在memcache01节点

#打开配置文件
vi /etc/keepalived/keepalived.conf
#删除所有内容

                                6.删除所有内容,替换一下内容,按图修改内容

! Configuration File for keepalived

global_defs {
   router_id LB02
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.27.200
    }
}

virtual_server 192.168.27.200 11211 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP
#对向节点的IP,即memcache02的IP
    sorry_server 192.168.27.128 11211
#本节点的IP
    real_server 192.168.27.129 11211 {
        weight 1
    notify_down /root/memcached.sh
    TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 11211
        }
    }
}

                                7.在两台memcache节点操作

echo "/usr/bin/systemctl stop keepalived"> /root/memcached.sh
chmod +x memcached.sh

systemctl start keepalived
systemctl enable keepalived

                                验证其中一台是否出现了VIP地址

                                验证

                                停掉vip所在机器的memcached服务

pkill memcached

                                会在另一台机器出现vip地址,实现了故障切换,即高可用

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

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

相关文章

技术革新!MultiDesk:高效远程桌面管理工具,TAB切换引领新潮流!

前言 话说远程操作&#xff0c;win系统自带的远程工具那可真是个让人头疼又爱不释手的活儿&#xff1b;不过别怕&#xff0c;今天小江湖要给大家揭秘一款神器——MultiDesk&#xff1b;有了它&#xff0c;可以不需要频繁切换窗口&#xff0c;不再为记不住复杂的服务器地址和密…

电脑监控怎样看回放视频?一键解锁电脑监控回放,守护安全不留死角!高效员工电脑监控,回放视频随时查!

你是否曾好奇那些键盘敲击背后的秘密&#xff1f;电脑监控不仅是守护企业安全的隐形盾牌&#xff0c;更是揭秘高效与合规的魔法镜&#xff01;一键解锁安企神监控回放&#xff0c;就像打开时间宝盒&#xff0c;让过去的工作瞬间跃然眼前。无论是精彩瞬间还是潜在风险&#xff0…

go语言中数据接口set集合的实现

概述 set 是一种常用的数据结构&#xff0c;它表示一组唯一元素的集合。在不同的编程语言和库中&#xff0c;set 可能有不同的实现方式和特性。 set 集合数据结构具有以下特性&#xff1a; 唯一性&#xff1a;set 中的元素是唯一的&#xff0c;不允许重复。这意味着在 set 中…

Linux环境下OpenSSH升级到 OpenSSH_9.8p1(内置保姆级教程并包含openssl升级过程)

文章目录 前言一、下载openssh、openssl二进制包二、升级步骤1.系统开启telnet&#xff0c;防止意外导致shh无法连接2.确认升级前openssh的版本3.升级openssh3.1.备份旧ssh配置文件及目录3.2.备份旧ssh相关的二进制程序文件3.3.安装gcc,并解压9.8p1的安装包3.4.执行openssh编译…

超有性价比深度学习卡特斯拉 P100,16G大显存,Stable Diffusion AI 绘画利器

超有性价比深度学习卡特斯拉 P100&#xff0c;16G大显存&#xff0c;Stable Diffusion AI 绘画利器 在当今数字化创作的时代&#xff0c;AI 绘画技术正以惊人的速度发展&#xff0c;为艺术家和创作者们带来了全新的可能性。而要实现高效的 AI 绘画&#xff0c;一款性能卓越的显…

MySQL——基本概念、环境安装、分类、语法(增删改查)以及内置数据库与基本函数

目录 一、数据库的概念 二、数据库的分类 关系型数据库&#xff1a; 非关系型数据库&#xff1a; 三、数据库系统 四、安装数据库 配置数据库的环境变量 五、MySQL的登录命令 六、SQL DDL DML DQL DCL 七、创建数据库 八、增删改查数据库 增加数据 删除数据 逻…

进程间的通信2——有名管道、信号

通信方式&#xff1a;(1)单工&#xff1a;//广播&#xff1b;单一方向的数据通道&#xff1b; &#xff08;2&#xff09;半双工&#xff1a;//对讲机&#xff1b;同一时刻只能有一个方向&#xff1b; &#xff08;3&#xff09;全双工&#xff1a;//手机电话&#xff1b;同一时…

Selenium 自动化测试平台

1.介绍 Selenium 是一套 Web网站 的程序自动化操作 解决方案。 通过它&#xff0c;我们可以写出自动化程序&#xff0c;像人一样在浏览器里操作web界面。 比如点击界面按钮&#xff0c;在文本框中输入文字 等操作。 而且还能从web界面获取信息。 比如获取 火车、汽车票务信息…

Spark2.x 入门:套接字流(DStream)

Spark Streaming可以通过Socket端口监听并接收数据&#xff0c;然后进行相应处理。 新建NetworkWordCount.scala代码文件&#xff0c;请在该文件中输入如下内容&#xff1a; package org.apache.spark.examples.streaming import org.apache.spark._ import org.apache.spark…

图像数据处理9

二、灰度变换 2.3 非线性灰度变换 以下式子中使用 f 表示输入图像的像素值&#xff0c;g 表示输出图像的像素值 2.3.1伽马校正&#xff08;Gamma Correction&#xff09; γ 是伽马值&#xff0c;通常大于0。调整 γ 的值可以改变图像的亮度。当 γ<1 时&#xff0c;图像…

一个简单的Rtmp推流客户端(QT录音,OpenCV摄像,FFmpeg编码推流)

RTMP&#xff08;Real-Time Messaging Protocol&#xff09;是一种实时流媒体传输协议&#xff0c;常用于音视频直播。 RTMP推流客户端是一种能够将音视频数据推送到直播服务器的工具。QT录音是利用Qt库实现的录音功能。OpenCV摄像是利用OpenCV库实现的对摄像头的控制和图像处理…

Chrome书签搜索插件

效果展示 这是一个chroma插件&#xff0c;可以按住 ctrl/command B 进行搜索您的书签&#xff0c;并且点击打开您的书签。支持上下切换回车打开新页面。支持文件夹搜索。多层级文件夹使用 / 分割。如&#xff1a;文件夹1/文件夹2/标签1 扩展下载地址 bookmark-search 欢迎有…

小程序学习day09-WXS脚本、自定义组件-组件的创建、引用、组件与页面的区别、组件的样式隔离

39、WXS脚本&#xff08;小程序独有的一套脚本语言&#xff09; &#xff08;1&#xff09;作用&#xff1a;结合WXML&#xff0c;可以构建出页面结构 &#xff08;2&#xff09;应用&#xff1a;在小程序中充当过滤器。&#xff08;wxml无法调用在页面的.js中定义的函数&…

DNS in Kubernetes

DNS in Kubernetes 对象分配的名称Service DNS 记录Pod DNS 记录 Cluster DNS参考 DNS for Services and Pods 这里主要讨论集群内不同对象之间的DNS解析 默认情况下&#xff0c;创建集群时&#xff0c;k8s会部署内置的DNS服务器&#xff0c;在集群内&#xff0c;我们不关注…

spring-boot-3.2.6+spring-security-6.2.4+oauth2整合github示例

一、添加依赖 在 pom.xml 中添加如下依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"h…

<数据集>航拍路面病害识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;3151张 标注数量(xml文件个数)&#xff1a;3151 标注数量(txt文件个数)&#xff1a;3151 标注类别数&#xff1a;7 标注类别名称&#xff1a;[Longitudinal crack, Transverse crack, Alligator crack, Oblique cr…

腾讯 图标点选 分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 有相关问题请第一时间头像私信联系我…

Element UI中报dateObject.getTime is not a function解决方法~

1、错误信息。 2、该报错原因是Element UI中日期组件的校验规则是type: "date",而一般我们从后台拿到的数据是字符串型的&#xff0c;不满足预期&#xff0c;就会报错。 3、解决方法。 去掉日子组件中的type: "date"校验规则即可。 rules: {newName: [{…

SOMEIP_ETS_046: echoUTF16FIXED

测试目的&#xff1a; 验证设备&#xff08;DUT&#xff09;是否能够正确处理echoUTF16FIXED方法的参数&#xff0c;并确保发送和接收的参数顺序和值保持一致。 描述 本测试用例旨在检查DUT在接收到一个使用echoUTF16FIXED方法的SOME/IP消息时&#xff0c;是否能够按照请求中…

利用PostgreSQL向量数据库和负责任的AI知识库在亚马逊云科技上构建商品推荐机器人

项目简介&#xff1a; 小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案&#xff0c;帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践&#xff0c;并应用到自己的日常工作里。 本次介绍的是如何在亚马逊云科技利用Postg…