缓存数据库Memcached——安装及管理数据库操作
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,一、Memcached 简介:(1)介绍:Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态
千家信息网最后更新 2025年01月19日缓存数据库Memcached——安装及管理数据库操作
一、Memcached 简介:
(1)介绍:
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
(2)特点:
memcached作为高速运行的分布式缓存服务器,具有以下的特点:
1、协议简单;
2、基于libevent的事件处理;
3、内置内存存储方式;
4、memcached不互相通信的分布式。
(3)存储方式:
为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。
二、memcached数据库配置:
1、准备安装所需源码包
[root@localhost ~]# mkdir /mnt/tools[root@localhost ~]# mount.cifs //192.168.100.100/tools /mnt/tools/ ##挂载Password for root@//192.168.100.100/tools: [root@localhost ~]# cd /mnt/tools/memcached/[root@localhost memcached]# lsLAMP-php5.6 magent-0.5.tar.gz memcached-1.5.6.tar.gzlibevent-2.1.8-stable.tar.gz memcache-2.2.7.tgz[root@localhost memcached]# [root@localhost memcached]# tar xf libevent-2.1.8-stable.tar.gz -C /opt/ ##解压[root@localhost memcached]# tar xf memcached-1.5.6.tar.gz -C /opt/ ##解压[root@localhost memcached]# cd /opt/[root@localhost opt]# lslibevent-2.1.8-stable memcached-1.5.6 rh[root@localhost opt]#
2、编译安装memcached
[root@localhost opt]# yum install gcc gcc-c++ make -y ##安装依赖环境包.............//省略过程[root@localhost libevent-2.1.8-stable]# ./configure --prefix=/usr/local/libevent ##配置libevent.............//省略过程[root@localhost libevent-2.1.8-stable]# make && make install ##编译安装libevent.............//省略过程[root@localhost libevent-2.1.8-stable]# cd ../memcached-1.5.6/[root@localhost memcached-1.5.6]# ./configure \ ##配置memcached> --prefix=/usr/local/memcached \> --with-libevent=/usr/local/libevent/.............//省略过程[root@localhost memcached-1.5.6]# make && make install ##编译安装memcached.............//省略过程[root@localhost memcached-1.5.6]# ln -s /usr/local/memcached/bin/* /usr/local/bin ##便于系统识别[root@localhost memcached-1.5.6]#
3、开启memcached
[root@localhost memcached-1.5.6]# memcached -d -m 32m -p 11211 -u root##开启数据库服务,-d守护进程 ;-m缓存大小32M ;-p端口11211[root@localhost memcached-1.5.6]#[root@localhost memcached-1.5.6]# netstat -ntap | grep memcached ##查看端口tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 22448/memcached tcp6 0 0 :::11211 :::* LISTEN 22448/memcached [root@localhost memcached-1.5.6]# [root@localhost memcached-1.5.6]# systemctl stop firewalld.service ##关闭防火墙[root@localhost memcached-1.5.6]# setenforce 0 ##关闭增强型安全功能[root@localhost memcached-1.5.6]#
4、memcached数据库基础操作
[root@localhost memcached-1.5.6]# yum install -y telnet ##安装Telnet服务.............//省略过程[root@localhost memcached-1.5.6]# telnet 127.0.0.1 11211 ##连接memcached数据库Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is '^]'.add username 0 0 7添加数据(两个0表示:不进行压缩和序列化标识,数据过期时间为永不过期;标识号是7就需要输入7位数。)1234567 ##输入7位的值STORED ##添加成功add users 0 0 7123 ##输入错误的值ERROR ##添加失败get username VALUE username 0 71234567ENDgets username ##查询数据VALUE username 0 7 11234567ENDset username 0 0 8 ##更新信息,若键名不存在,则自行添加12345678STOREDgets username ##查询数据VALUE username 0 8 312345678ENDreplace school 0 0 2 ##更新信息,若键名不存在,则报错un NOT_STOREDget shcool ##查询数据ENDreplace username 0 0 9 ##更新信息,若键名不存在,则报错123456789STOREDgets username ##查询数据VALUE username 0 9 4123456789ENDset school 0 0 4 ##更新信息,若键名不存在,则自行添加1234STOREDgets school ##查询数据VALUE school 0 4 51234ENDcas school 0 0 7 5 ##修改键的存储位数loggingSTOREDgets school VALUE school 0 7 6loggingENDcas school 0 0 8 2loggingsEXISTSappend school 0 0 4 ##键值后追加数据bookSTOREDgets schoolVALUE school 0 11 7loggingbookENDprepend school 0 0 2 ##键值前追加数据unSTOREDgets schoolVALUE school 0 13 8unloggingbookENDdelete school ##清除指定的键值数据,清除所有缓存数据为flush_allDELETEDget schoolENDquit ##退出Connection closed by foreign host.[root@localhost memcached-1.5.6]# ##查看命令:stats ##显示状态信息stats items ##返回所有键值对的统计信息stats cachedump 1 0 ##返回指定存储空间的键值对 stats slabs ##显示各个slab的信息stats sizes ##输出所有item的大小和个数stats reset ##清空统计数据
三、客户端配置(部署LAMP架构)
LAMP架构之前的博客写过,想看详细解释的可以,看一下。下面就不做解释了。
LNMP架构
1、部署LAMP架构
[root@localhost ~]# mkdir /mnt/tools[root@localhost ~]# mount.cifs //192.168.100.100/tools /mnt/tools/Password for root@//192.168.100.100/tools: [root@localhost ~]# cd /mnt/tools/memcached/[root@localhost memcached]# lsLAMP-php5.6 libevent-2.1.8-stable.tar.gz magent-0.5.tar.gz memcache-2.2.7.tgz memcached-1.5.6.tar.gz[root@localhost LAMP-php5.6]# lsapr-1.6.2.tar.gz httpd-2.4.29.tar.bz2 mysql-5.6.26.tar.gzapr-util-1.6.0.tar.gz LAMP-php5.6.txt php-5.6.11.tar.bz2[root@localhost LAMP-php5.6]# [root@localhost LAMP-php5.6]# tar xf apr-1.6.2.tar.gz -C /opt/[root@localhost LAMP-php5.6]# tar xf apr-util-1.6.0.tar.gz -C /opt/[root@localhost LAMP-php5.6]# tar xf httpd-2.4.29.tar.bz2 -C /opt/[root@localhost LAMP-php5.6]# [root@localhost LAMP-php5.6]# cd /opt/[root@localhost opt]# lsapr-1.6.2 apr-util-1.6.0 httpd-2.4.29 rh[root@localhost opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr[root@localhost opt]# mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util[root@localhost opt]# lshttpd-2.4.29 rh[root@localhost opt]# [root@localhost opt]# cd httpd-2.4.29/[root@localhost httpd-2.4.29]# yum -y install \> gcc \> gcc-c++ \> make \> pcre-devel \> expat-devel \> perl \> zlib-devel[root@localhost httpd-2.4.29]# ./configure \> --prefix=/usr/local/httpd \> --enable-so \> --enable-rewrite \> --enable-charset-lite \> --enable-cgi[root@localhost httpd-2.4.29]# make && make install[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd[root@localhost httpd-2.4.29]# vim /etc/init.d/httpd # chkconfig: 35 85 21 //35级别自动运行 第85个启动 第21个关闭# description: Apache is a World Wide Web server[root@localhost httpd-2.4.29]# chkconfig --add httpd[root@localhost httpd-2.4.29]# [root@localhost httpd-2.4.29]# vim /usr/local/httpd/conf/httpd.conf ServerName www.yun.com:80Listen 192.168.52.132:80#Listen 80[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/[root@localhost httpd-2.4.29]# apachectl -tSyntax OK[root@localhost httpd-2.4.29]# [root@localhost httpd-2.4.29]# service httpd start [root@localhost httpd-2.4.29]# netstat -ntap | grep 80tcp 0 0 192.168.52.132:80 0.0.0.0:* LISTEN 88064/httpd [root@localhost httpd-2.4.29]# [root@localhost httpd-2.4.29]# cd /mnt/tools/memcached/LAMP-php5.6/[root@localhost LAMP-php5.6]# lsapr-1.6.2.tar.gz httpd-2.4.29.tar.bz2 mysql-5.6.26.tar.gzapr-util-1.6.0.tar.gz LAMP-php5.6.txt php-5.6.11.tar.bz2[root@localhost LAMP-php5.6]# tar xf mysql-5.6.26.tar.gz -C /opt/[root@localhost LAMP-php5.6]# cd /opt/[root@localhost opt]# lshttpd-2.4.29 mysql-5.6.26 rh[root@localhost opt]# cd mysql-5.6.26/[root@localhost mysql-5.6.26]# yum install -y ncurses-devel autoconf cmake[root@localhost mysql-5.6.26]# cmake \> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \> -DDEFAULT_CHARSET=utf8 \> -DDEFAULT_COLLATION=utf8_general_ci \> -DEXTRA_CHARSETS=all \> -DSYSCONFIDIR=/etc \> -DMYSQL_DATADIR=/home/mysql/ \> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock[root@localhost mysql-5.6.26]# make && make install[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnfcp:是否覆盖"/etc/my.cnf"? yes[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld[root@localhost mysql-5.6.26]# chmod 755 /etc/init.d/mysqld [root@localhost mysql-5.6.26]# chkconfig --add /etc/init.d/mysqld[root@localhost mysql-5.6.26]# chkconfig mysqld --level 235 on[root@localhost mysql-5.6.26]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile[root@localhost mysql-5.6.26]# source /etc/profile[root@localhost mysql-5.6.26]# useradd -s /sbin/nologin mysql[root@localhost mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/[root@localhost mysql-5.6.26]# [root@localhost mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db \> --user=mysql \> --ldata=/var/lib/mysql \> --basedir=/usr/local/mysql \> --datadir=/home/mysql[root@localhost mysql-5.6.26]# ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock[root@localhost mysql-5.6.26]# vim /etc/init.d/mysqld basedir=/usr/local/mysqldatadir=/home/mysql[root@localhost mysql-5.6.26]# service mysqld start Starting MySQL. SUCCESS! [root@localhost mysql-5.6.26]# netstat -ntap | grep 3306tcp6 0 0 :::3306 :::* LISTEN 103429/mysqld [root@localhost mysql-5.6.26]# [root@localhost mysql-5.6.26]# service mysqld start Starting MySQL. SUCCESS! [root@localhost mysql-5.6.26]# netstat -ntap | grep 3306tcp6 0 0 :::3306 :::* LISTEN 103429/mysqld [root@localhost mysql-5.6.26]# [root@localhost mysql-5.6.26]# mysqladmin -u root -p password "abc123"Enter password: Warning: Using a password on the command line interface can be insecure.[root@localhost mysql-5.6.26]# mysql -u root -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.6.26 Source distributionCopyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> \qBye[root@localhost mysql-5.6.26]# [root@localhost mysql-5.6.26]# cd /mnt/tools/memcached/LAMP-php5.6/[root@localhost LAMP-php5.6]# lsapr-1.6.2.tar.gz httpd-2.4.29.tar.bz2 mysql-5.6.26.tar.gzapr-util-1.6.0.tar.gz LAMP-php5.6.txt php-5.6.11.tar.bz2[root@localhost LAMP-php5.6]# tar xf php-5.6.11.tar.bz2 -C /opt/[root@localhost LAMP-php5.6]# cd /opt/[root@localhost opt]# lshttpd-2.4.29 mysql-5.6.26 php-5.6.11 rh[root@localhost opt]# cd php-5.6.11/[root@localhost php-5.6.11]# yum -y install \> gd \> libpng \> libpng-devel \> pcre \> pcre-devel \> libxml2-devel \> libjpeg-devel[root@localhost php-5.6.11]# ./configure \> --prefix=/usr/local/php5 \> --with-gd \> --with-zlib \> --with-apxs2=/usr/local/httpd/bin/apxs \> --with-mysql=/usr/local/mysql \> --with-config-file-path=/usr/local/php5 \> --enable-mbstring [root@localhost php-5.6.11]# make && make install[root@localhost php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/[root@localhost php-5.6.11]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/[root@localhost php-5.6.11]# [root@localhost php-5.6.11]# vim /etc/httpd.conf AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps DirectoryIndex index.html index.php [root@localhost php-5.6.11]# vim /usr/local/httpd/htdocs/index.php[root@localhost php-5.6.11]# service httpd stop [root@localhost php-5.6.11]# service httpd start [root@localhost php-5.6.11]# systemctl stop firewalld.service [root@localhost php-5.6.11]# setenforce 0[root@localhost php-5.6.11]#
2、测试访问,LAMP架构搭建成功
3、修改index.php文件
[root@localhost php-5.6.11]# vim /usr/local/httpd/htdocs/index.phpSuccess!!";else echo "Fail!!";mysql_close();?>
4、测试数据库工作是否正常
[root@localhost php-5.6.11]# mysql -u root -pabc123 ##进入数据库Warning: Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 6Server version: 5.6.26 Source distributionCopyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database sky; ##创建一个数据库为 skyQuery OK, 1 row affected (0.00 sec)mysql> grant all on sky.* to 'skyuser'@'%' identified by 'admin123'; ##提权Query OK, 0 rows affected (0.01 sec)mysql> flush privileges; ##刷新权限Query OK, 0 rows affected (0.01 sec)mysql>
5、再次访问网页,显示success表示成功
6、安装 Memcache 客户端
[root@localhost php-5.6.11]# cd /mnt/tools/memcached/[root@localhost memcached]# lsLAMP-php5.6 libevent-2.1.8-stable.tar.gz magent-0.5.tar.gz memcache-2.2.7.tgz memcached-1.5.6.tar.gz[root@localhost memcached]# tar xf memcache-2.2.7.tgz -C /opt/ ##解压[root@localhost memcached]# cd /opt/[root@localhost opt]# lshttpd-2.4.29 memcache-2.2.7 mysql-5.6.26 package.xml php-5.6.11 rh[root@localhost opt]# [root@localhost opt]# cd memcache-2.2.7/[root@localhost memcache-2.2.7]# /usr/local/php5/bin/phpize Configuring for:PHP Api Version: 20131106Zend Module Api No: 20131226Zend Extension Api No: 220131226[root@localhost memcache-2.2.7]# [root@localhost memcache-2.2.7]# ./configure \ ##配置> --enable-memcache \> --with-php-config=/usr/local/php5/bin/php-config [root@localhost memcache-2.2.7]# make && make install ##编译安装
7、配置 PHP,添加 Memcached 组件
[root@localhost memcache-2.2.7]# vim /usr/local/php5/php.iniextension_dir = "/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/"extension=memcache.so
8、修改index.php文件,再重启httpd服务
[root@localhost memcache-2.2.7]# vim /usr/local/httpd/htdocs/index.php connect('192.168.52.149',11211);$memcache->set('key','Memcache test Successfull!',0,60);$result = $memcache->get('key');unset($memcache);echo $result;?>[root@localhost memcache-2.2.7]# service httpd stop[root@localhost memcache-2.2.7]# service httpd start [root@localhost memcache-2.2.7]#
9、客户端检测服务端是否可以正常连接
数据
数据库
缓存
信息
存储
过程
服务
配置
内存
架构
查询
客户
客户端
更新
编译
成功
分布式
系统
进程
输入
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
天津hp服务器虚拟化建设云空间
三维机软件开发
ebd数据库安装
上海洗衣机软件开发
华三服务器部署linux系统
视频服务器每隔几小时就跳几分钟
网络技术工资大约多少
json 数据库 教程
黄浦区品牌软件开发费用是多少
万德网络技术
网络安全技术人员有前途吗
3种数据库获取系统时间长
天河手机app软件开发公司
网络安全管理的方法有哪些
茂名戴尔服务器新品
数据库中间库自动扩展
服务器本地打印
国家对软件开发行业的扶持
巴中服务器租用厂家
外文文献数据库wps
数据库安全警报
坐席助手无法注册到服务器
邮箱服务器满了
服务器距离远
wps文件同步到网络安全吗
数据库学生管理系统建表
邮箱pop3服务器设置
农牧业局网络安全制度
合肥清默网络技术
数据库es安全性测试工具