存储+调优:存储-memcached

news/2024/7/25 2:59:13/文章来源:https://blog.csdn.net/2301_79009758/article/details/139128617

存储+调优:存储-memcached

什么是memcached?
    高性能的分布式内存缓存服务器。通过缓存数据库的查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

在memcached中存什么?
尽快被保存
访问频率高

1.数据保存方式 chunk
2.数据有效期
3.数据过期慵懒检查
4.数据的存取 set get
5。通过应用程序访问memcache


数据存储方式
chunk


数据过期方式
• Lazy Expiration
memcached内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。这种技术被称为lazy(惰性)expiration。因此,memcached不会在过期监视上耗费CPU时间。

• LRU
memcached会优先使用已超时的记录的空间,但即使如此,也会发生追加新记录时空间不足的情况,此时就要使用名为 Least Recently Used(LRU)机制来分配空间。顾名思义,这是删除“最近最少使用”的记录的机制。因此,当memcached的内存空间不足时(无法从slab class 获取到新的空间时),就从最近未被使用的记录中搜索,并将其空间分配给新的记录。从缓存的实用角度来看,该模型十分理想。

[root@localhost tmp]# tar xf libevent-2.0.15-stable.tar.gz 
[root@localhost tmp]# cd libevent-2.0.15-stable
[root@localhost libevent-2.0.15-stable]# ./configure && make && make install
[root@localhost tmp]# tar xf memcached-1.4.5.tar.gz 
[root@localhost tmp]# cd memcached-1.4.5
[root@localhost memcached-1.4.5]# ./configure && make && make install
[root@localhost memcached-1.4.5]# ./memcached -h
[root@localhost memcached-1.4.5]# ./memcached -p 11211 -l 172.16.1.6 -u root -m 64 -c 10 -vvv -f 1.2 -n 60
slab class   1: chunk size        96 perslab   10922
slab class   2: chunk size       120 perslab    8738
slab class   3: chunk size       144 perslab    7281
slab class   4: chunk size       176 perslab    5957
slab class   5: chunk size       216 perslab    4854
slab class   6: chunk size       264 perslab    3971
slab class   7: chunk size       320 perslab    3276
slab class   8: chunk size       384 perslab    2730
slab class   9: chunk size       464 perslab    2259
slab class  10: chunk size       560 perslab    1872
slab class  11: chunk size       672 perslab    1560
slab class  12: chunk size       808 perslab    1297
slab class  13: chunk size       976 perslab    1074
slab class  14: chunk size      1176 perslab     891
slab class  15: chunk size      1416 perslab     740
slab class  16: chunk size      1704 perslab     615
slab class  17: chunk size      2048 perslab     512
slab class  18: chunk size      2464 perslab     425
slab class  19: chunk size      2960 perslab     354
slab class  20: chunk size      3552 perslab     295
slab class  21: chunk size      4264 perslab     245
slab class  22: chunk size      5120 perslab     204
slab class  23: chunk size      6144 perslab     170
slab class  24: chunk size      7376 perslab     142
slab class  25: chunk size      8856 perslab     118
slab class  26: chunk size     10632 perslab      98
slab class  27: chunk size     12760 perslab      82
slab class  28: chunk size     15312 perslab      68
slab class  29: chunk size     18376 perslab      57
slab class  30: chunk size     22056 perslab      47
slab class  31: chunk size     26472 perslab      39
slab class  32: chunk size     31768 perslab      33
slab class  33: chunk size     38128 perslab      27
slab class  34: chunk size     45760 perslab      22
slab class  35: chunk size     54912 perslab      19
slab class  36: chunk size     65896 perslab      15
slab class  37: chunk size     79080 perslab      13
slab class  38: chunk size     94896 perslab      11
slab class  39: chunk size    113880 perslab       9
slab class  40: chunk size    136656 perslab       7
slab class  41: chunk size    163992 perslab       6
slab class  42: chunk size    196792 perslab       5
slab class  43: chunk size    236152 perslab       4
slab class  44: chunk size    283384 perslab       3
slab class  45: chunk size    340064 perslab       3
slab class  46: chunk size    408080 perslab       2
slab class  47: chunk size    489696 perslab       2
slab class  48: chunk size    587640 perslab       1
slab class  49: chunk size    705168 perslab       1
slab class  50: chunk size    846208 perslab       1
slab class  51: chunk size   1048576 perslab       1
<26 server listening (auto-negotiate)
<27 send buffer was 110592, now 268435456
<27 server listening (udp)
<27 server listening (udp)
<27 server listening (udp)
<27 server listening (udp)


[root@node1 ~]# telnet 172.16.1.6 11211
Trying 172.16.1.6...
Connected to 172.16.1.6 (172.16.1.6).
Escape character is '^]'.

<27 server listening (udp)
<27 server listening (udp)
<27 server listening (udp)
<27 server listening (udp)
<28 new auto-negotiating client connection


[root@node1 ~]# telnet 172.16.1.6 11211
Trying 172.16.1.6...
Connected to 172.16.1.6 (172.16.1.6).
Escape character is '^]'.
set nothing 0 180 10   ----- 0:标识  180:过期时间 10:多少字节
1234567890
STORED
get nothing
VALUE nothing 0 10
1234567890
END


[root@node1 ~]# yum install httpd php
[root@node1 ~]# rpm -ivh php-pecl-memcache-2.1.2-1.el5.rf.i386.rpm 
[root@node1 ~]# cp test.php /var/www/html/
[root@node1 ~]# vim /var/www/html/test.php 
<?php
$memcache = new Memcache;
$memcache->connect('172.16.1.6',11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";

$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;

$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";

var_dump($get_result);
?>

[root@node1 ~]# service httpd start

[root@localhost ~]# elinks --dump http://172.16.1.1/test.php
   Server's version: 1.4.5
   Store data in the cache (data will expire in 10 seconds)
   Data from the cache:
   object(stdClass)#3 (2) { ["str_attr"]=> string(4) "test" ["int_attr"]=>
   int(123) }


apache + tomcat + memcached

apache 作为分发器
tomcat 提供web服务
mc     保证session同步


ip  192.168.1.106
apache:
    
    yum install httpd httpd-devel gcc -y
    
ajp1.3:
    tar zxvf tomcat-connectors-1.2.32-src.tar.gz  -C /tmp
    cat /tmp/tomcat-connectors-1.2.32-src/BUILD.txt 
    cd native
     ./configure --with-apxs=/usr/sbin/apxs 
    make && make install
    cp  ../conf/httpd-jk.conf /etc/httpd/conf.d/jk.conf
    vim /etc/httpd/conf.d/jk.conf
    JkMount   /*.jsp     wlb            
    JkMount   /manager/*     wlb
    
    cp  ../conf/workers.properties /etc/httpd/conf
    vim /etc/httpd/conf/workers.properties
    worker.list=wlb,jkstatus
    worker.wlb.type=lb
    worker.wlb.balance_workers=tomcat1,tomcat2
    worker.tomcat1.type=ajp13
    worker.tomcat1.host=192.168.1.111
    worker.tomcat1.port=8009
    worker.tomcat1.lbfactor=1
    worker.tomcat2.type=ajp13
    worker.tomcat2.host=192.168.1.112
    worker.tomcat2.port=8009
    worker.tomcat2.lbfactor=1

    /etc/init.d/httpd  restart

ip  192.168.1.111 192.168.1.112
jdk:
    service httpd stop
    chmod +x jdk-6u27-linux-i586.bin 
    ./jdk-6u27-linux-i586.bin 
    mv jdk1.6.0_27/ /usr/local/jdk
    vim /etc/bashrc
        export JAVA_HOME=/usr/local/jdk
        export JAVA_BIN=/usr/local/jdk/bin/
        export PATH=$JAVA_HOME/bin:$PATH
        export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
        export JAVA_HOME JAVA_BIN PATH CLASSPATH
    source /etc/bashrc 
    java -version
    mv apache-tomcat-6.0.32 /usr/local/tomcat

tomcat:
    tar zxf apache-tomcat-6.0.32.tar.gz 
    mv apache-tomcat-6.0.32 /usr/local/tomcat
    cd /usr/local/tomcat/bin 
    ./startup.sh 

cat >/usr/local/tomcat/webapps/ROOT/index.jsp <<EOF
<html>
<body bgcolor="red">
<center>
<%= request.getSession().getId() %>
<h1>Tomcat 1</h1>
</body>
</html>

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

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

相关文章

【Unity】Unity项目转抖音小游戏(三)资源分包,抖音云CDN

业务需求&#xff0c;开始接触一下抖音小游戏相关的内容&#xff0c;开发过程中记录一下流程。 使用资源分包可以优化游戏启动速度&#xff0c;是抖音小游戏推荐的一种方式&#xff0c;抖音云也提供存放资源的CDN服务 抖音云官方文档&#xff1a;https://developer.open-douyi…

R可视化:另类的箱线图

介绍 方格状态的箱线图 加载R包 knitr::opts_chunk$set(echo TRUE, message FALSE, warning FALSE) library(patternplot) library(png) library(ggplot2) library(gridExtra)rm(list ls()) options(stringsAsFactors F)导入数据 data <- read.csv(system.file(&qu…

雷达基数据绘制成雷达图

x波段雷达基数据绘制成雷达图 1.雷达基数据格式Z_RADR_I_ZR001_20240521020002_O_DOR_YLD2-D_CAP_FMT.bin.bz2 2.基数据读取 python f StandardData(i) # 新版本标准数据radarTime f.scantime # 获取雷达时次date_str radarTime.strftime(%Y-%m-%d %H:%M:%S)date_str d…

C#【进阶】排序进阶

排序进阶 文章目录 插入排序希尔排序归并排序快速排序堆排序 插入排序 #region 知识点一 插入排序的基本原理 // 8 7 1 5 4 2 6 3 9 // 两个区域 // 排序区 // 未排序区 // 用一个索引值做分水岭// 未排序区元素 // 与排序区元素比较 // 插入到合适位置 // 直到未排序区清空 #e…

Docker(三) 容器管理

1 容器管理概述 Docker 的容器管理可以通过 Docker CLI 命令行工具来完成。Docker 提供了丰富的命令&#xff0c;用于管理容器的创建、启动、停止、删除、暂停、恢复等操作。 以下是一些常用的 Docker 容器命令&#xff1a; 1、docker run&#xff1a;用于创建并启动一个容器。…

Qt教程3-Ubuntu(x86_64)上配置arm64(aarch64)交叉编译环境及QT编译arm64架构工程

汇创慧玩 写在前面1. 查看系统架构相关指令2. ARM64交叉编译器环境搭建3. Qt编译arm64环境搭建4. 配置 Qt的本地aarch64交叉编译器5. 工程建立及编译验证 写在前面 苦辣酸甜时光八载&#xff0c;春夏秋冬志此一生 Qt简介&#xff1a; Qt&#xff08;官方发音 [kju:t]&#xff…

Spring Boot集成六大常用中间件,附集成源码,亲测有效

目录 万字论文&#xff0c;从0到1&#xff0c;只需1小时获取途径1、Spring Boot如何集成Spring Data JPA&#xff1f;2、Spring Boot如何集成Spring Security&#xff1f;3、Spring Boot如何集成Redis&#xff1f;4、Spring Boot如何集成RabbitMQ&#xff1f;5、Spring Boot如何…

【C++】C++11(一)

C11是一次里程碑式的更新&#xff0c;我们一起来看一看~ 目录 列表初始化&#xff1a;{ }初始化&#xff1a;std::initializer_list&#xff1a; 声明&#xff1a;auto&#xff1a;decltype&#xff1a; STL的一些变化&#xff1a; 列表初始化&#xff1a; { }初始化&#xf…

云计算期末复习(2)

MapReduce 包含Google MapReduce基本构架、Hadoop MapReduce基本构架 作业&#xff08;问答题&#xff09; &#xff08;1&#xff09;预习论文The Google File System&#xff0c;总结和分析GFS主要特点。 GFS的主要特点包括&#xff1a; 1. 高可靠性和容错性&#xff1a;G…

政府鼓励社会力量建设气膜体育场馆—轻空间

2023年12月1日&#xff0c;国家体育安全总局发布的《关于政协第十四届全国委员会第一次会议第00374号&#xff08;文体宣传类020号&#xff09;提案答复的函》中指出&#xff0c;2016年和2020年国务院发布的文件中均涉及推动气膜场馆建设及完善装配式建筑相关政策。下一步&…

炸裂!AI五分钟模仿爆款IP故事,涨粉速度太绝了!

‍ ‍大家好&#xff0c;我是向阳。 今天我要分享一个利用AI技术模仿爆款账号的小技巧&#xff0c;帮助大家迅速增加粉丝。这个方法简单实用&#xff0c;尤其适用于副业和本地生活领域。接下来&#xff0c;我将为大家详细讲解操作步骤。让我们开始吧。 副业赚钱&#xff1a;模…

2024年03月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,共50分) 第1题 运行如下代码,若输入整数3,则最终输出的结果为?( ) def f(x):if x==1:s=1else:s

基于 IP 的 DDOS 攻击实验

介绍 基于IP的分布式拒绝服务&#xff08;Distributed Denial of Service, DDoS&#xff09;攻击是一种利用大量受控设备&#xff08;通常是僵尸网络&#xff09;向目标系统发送大量请求或数据包&#xff0c;以耗尽目标系统的资源&#xff0c;导致其无法正常提供服务的攻击方式…

[集群聊天服务器]----(十)Nginx的tcp负载均衡配置--附带截图

接着上文&#xff0c;我们剖析了服务端和客户端的代码&#xff0c;但是单台服务器的并发量是有限的&#xff0c;面对并发量的要求&#xff0c;我们就需要引入Nginx来实现并发量的要求&#xff0c;将用户请求分发到不同的服务器上分担压力&#xff0c;这就是负载均衡。 选择负…

【国信华源:以专业服务,协助水利厅抵御强暴雨】

5月18日-19日&#xff0c;广西出现入汛以来最强暴雨天气过程&#xff0c;钦州、防城港、北海、南宁等地出现特大暴雨&#xff0c;多地打破降雨量极值。国信华源技术团队积极行动驻守一线&#xff0c;为打好山洪灾害防御的提前战、主动战提供了技术支撑。 5月17日18时&#xff0…

在某云服务器上搭建公网kali linux2.0

前提&#xff1a; 可用的 CVM 实例 挂载一个系统盘之外的盘&#xff0c;安装完成后可卸载&#xff01; 创建实例&#xff0c;安装centos7系统&#xff01; 然后执行fdisk -l看磁盘的情况 在这里我将把镜像写入vdb这块数据盘 非 root 的情况下记得sudo执行以下命令 注意&…

重新安装 Windows 10/11 后如何恢复丢失的数据?

“嗨&#xff0c;我的 Windows 10/11 崩溃了&#xff0c;所以我不得不重新安装它。我使用 USB 可启动驱动器重新安装了操作系统。但是&#xff0c;重新安装后&#xff0c;C 盘上的所有先前文件都丢失了。有什么方法可以恢复丢失的文件吗&#xff1f;” - 孙雯 在大多数情况下&…

Android --- 交换两个布局

准备布局 exchange_out_layout exchange_in_layout <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"andr…

【讲解下Web前端三大主流的框架】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

使用Python类的构造函数和析构函数

1、问题背景 当使用Python类时&#xff0c;可以使用构造函数和析构函数来初始化和清理类实例。构造函数在创建类实例时自动调用&#xff0c;而析构函数在删除类实例时自动调用。 在上面的代码示例中&#xff0c;Person类具有一个构造函数__init__和一个析构函数__del__。构造…