memcached内存数据库——部署及操作
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,概述 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcac
千家信息网最后更新 2026年11月02日memcached内存数据库——部署及操作
概述
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
特点
1、协议简单;2、基于libevent的事件处理;3、内置内存存储方式;4、memcached不互相通信的分布式。存储方式
为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。
工作原理
Memcached处理的原子是每一个(key,value)对(以下简称kv对),key会通过一个hash算法转化成hash-key,便于查找、对比以及做到尽可能的散列。同时,memcached用的是一个二级散列,通过一张大hash表来维护。
Memcached有两个核心组件组成:服务器端(server)和客户端(client),在一个memcached的查询中,client先通过计算key的hash值来确定kv对所处在的server位置。当server确定后,客户端就会发送一个查询请求给对应的server,让它来查找确切的数据。因为这之间没有交互以及多播协议,所以memcached交互带给网络的影响是最小化的。
实验环境
memcached服务器 192.168.13.128 (memcached-1.5.6.tar.gz、libevent-2.1.8-stable.tar.gz)memcache客户端 192.168.13.129 (memcache-2.2.7.tgz 、LAMP)1,部署memcached服务器
[root@server ~]# yum install -y gcc gcc-c++ make ##安装环境组件[root@server ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/Password for root@//192.168.100.3/LNMP-C7: [root@server ~]# cd /mnt/memcached/[root@server memcached]# tar zxvf libevent-2.1.8-stable.tar.gz -C /opt/ ##事件通知库 [root@server memcached]# tar zxvf memcached-1.5.6.tar.gz -C /opt/ ##解压事件库服务端[root@server memcached]# cd /opt/libevent-2.1.8-stable/[root@server libevent-2.1.8-stable]# ./configure \ ##配置> --prefix=/usr/local/libevent ##安装路径[root@server libevent-2.1.8-stable]# make && make install ##编译安装[root@server libevent-2.1.8-stable]# cd /opt/memcached-1.5.6/[root@server memcached-1.5.6]# ./configure \> --prefix=/usr/local/memcached \> --with-libevent=/usr/local/libevent ##关联libevent事件通知库[root@server memcached-1.5.6]# make && make install[root@server memcached-1.5.6]# ln -s /usr/local/memcached/bin/* /usr/local/bin/ ##建立软连接[root@server memcached-1.5.6]# memcached -d -m 32m -p11211 -uroot ##开启服务##-d守护进程 ;-m缓存大小32M ;-p端口11211[root@server memcached-1.5.6]# netstat -ntap | grep memcached ##查看端口[root@server memcached-1.5.6]# systemctl stop firewalld.service [root@server memcached-1.5.6]# setenforce 0[root@server memcached-1.5.6]# yum install telnet -y ##安装telnet软件[root@server memcached-1.5.6]# telnet 127.0.0.1 11211 ##本地测试登录add username 0 0 7 ##0:不设置序列号0:不设置过期事件7:字节长度1234567STOREDadd users 0 0 7123ERRORget username ##查看VALUE username 0 71234567ENDgets username ##查看VALUE username 0 7 1 ##1:更新次数1234567END2,在memcache客户端安装lamp结构
##lamp结构见前博客有具体操作##测试数据工作是否正常[root@client php-5.6.11]# mysql -u root -pabc123 //进入数据库CREATE DATABASE sky; //创建一个数据库为 skyGRANT all ON sky.* TO 'skyuser'@'%' IDENTIFIED BY 'admin123'; //提权flush privileges; //刷新数据库##修改PHP首页[root@client php-5.6.11]# vim /usr/local/httpd/htdocs/index.php Success!!"; else echo "Fail!!"; mysql_close(); ?>3,在客户端安装memcache客户端
[root@client ~]# yum install autoconf -y[root@client ~]# cd /mnt/memcached/[root@client memcached]# tar zvxf memcache-2.2.7.tgz -C /opt/[root@client memcached]# cd /opt/memcache-2.2.7/[root@client memcache-2.2.7]# /usr/local/php5/bin/phpize ##增加PHP模块生成脚本[root@client memcache-2.2.7]# ./configure \> --enable-memcache \ ##开启memcache> --with-php-config=/usr/local/php5/bin/php-config ##关联PHP配置文件[root@client memcache-2.2.7]# make && make install/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/ ##共享文件位置,后面需要用到[root@client memcache-2.2.7]# vim /usr/local/php5/php.ini ##修改php配置文件extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/" ##共享文件位置extension = memcache.so ##指向memcache模块4,用客户端检测服务端是否正常连接
[root@client memcache-2.2.7]# vim /usr/local/httpd/htdocs/index.phpconnect('192.168.13.128',11211); ##连接Memcached服务器地址$memcache->set('key','Memcache test Successfull!',0,60);$result=$memcache->get('key');unset($memcache);echo$result;?>[root@client memcache-2.2.7]# service httpd stop ##重启[root@client memcache-2.2.7]# service httpd start##浏览器访问
5,memcache数据库基本操作
新建数据:
add username 0 0 7 //添加数据(两个0表示:不进行压缩和序列化标识,数据过期时间为永不过期;标识号是7就需要输入7位数。)allways //输入一个7位数查询数据:
get username //查询数据gets username更新数据:
set username 0 0 10 //更新信息,若键名不存在,则自行添加everythingreplace username 0 0 8 //更新信息,若键名不存在,则报错12345678检测/查看 更新数据:
gets username //检测更新VALUE username 0 8 412345678追加数据:
append username 0 0 7 //键值后追加数据exampleprepend username 0 0 2 //键值前追加数据un清除数据:
delete username //清除指定的键值数据flush_all //清除所有缓存数据OK查看服务器统计信息:
stats //显示状态信息stats items //返回所有键值对的统计信息stats cachedump 1 0 //返回指定存储空间的键值对 stats slabs //显示各个slab的信息stats sizes //输出所有item的大小和个数stats reset //清空统计数据谢谢阅读!
数据
服务
客户
客户端
数据库
信息
服务器
缓存
存储
更新
内存
事件
文件
查询
位置
进程
检测
统计
配置
两个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
为想互联网科技怎么样
互联网与科技金融数据
互联网科技未来
小马过河互联网科技
西安互联网科技公司
互联网女皇 腾讯科技
融势互联网科技
广西互联网科技公司
互联网科技小额贷款
互联网金融和金融科技
美国互联网前沿科技
互联网科技公司的市场部门
深圳国际航运科技和互联网
福州新华互联网科技学校 知乎
花神(南京)互联网科技有限公司
威龙国际互联网科技公司
工业互联网科技成果转化
云鲸互联网络科技有限公司
北京军民互联网科技公司
优雇互联网科技有限公司
上海挚品互联网科技有限公司
麻工互联网科技
北京互联网科技公司
互联网科技论文
互联网科技logo设计
成都玖崟互联网科技有限公司乐商圈怎么样
互联网科技热点资讯
国大互联网教育科技有限公司薪资
郑州欣桑互联网科技有限公司
银川新华互联网科技学校是国营吗