Memcache------服务端与客户端的搭建------------实现客户端连接服务端----过程很详细,一看就会!

一、搭建Memcached

【定义】:
●Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。  
●Memcache是danga的一个项目,最早是LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。LJ每秒动态页面访问量几千次,用户700万。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。
●Memcached是以守护程序方式运行于一个或多个服务器中,随时会接收客户端的连接和操作。

【Memcache和memcached】:
Memcache是这个项目的名称,而memcached是它服务器端的主程序文件名

【memcache与redis的区别和联系】:
●redis:支持比较多的数据类型(String/list/set/sortset/hash),redis支持集合计算的(set类型支持),每个key最大数据存储量为1G,redis是新兴的内存缓存技术,对各方面支持不完善,支持持久化操作。

●memcache:老牌的内存缓存技术,对相关领域支持比较丰富,window和linux都可以使用,各种框架(tp/yii等等)都支持使用,session的信息可以非常方便的保存到该memcache中,每个key保存的数据量最大为1M,支持的数据类型比较单一,就是String类型,不支持持久化。

●两者的相同之处在于把数据保存在内存中。

环境部署:
centos7.4 memcached服务端 IP地址:20.0.0.20
centos7.4 memcached客户端 IP地址:20.0.0.21

1.1 搭建memcached服务器(server)

1.1.1 修改主机名

hostnamectl set-hostname memcached
su

1.1.2 上传软件包并解压

cd /opt
tar zxvf libevent-2.1.8-stable.tar.gz ‘//解压事件库’
tar zxvf memcached-1.5.6.tar.gz '//解压源码包’

1.1.3 编译安装memcache和事件库

yum install gcc gcc-c++ make -y ‘//安装编译器’
cd libevent-2.1.8-stable/
./configure --prefix=/usr/local/libevent ‘//指定libevent目录’
make && make install

cd …
cd memcached-1.5.6/
./configure
–prefix=/usr/local/memcached
–with-libevent=/usr/local/libevent

make && make install

解释:
–prefix=/usr/local/memcached \ '//指定memcache路径
–with-libevent=/usr/local/libevent '//关联libevent事件库’

1.1.4 memcache优化

ln -s /usr/local/memcached/bin/ /usr/local/bin/
‘//建立memcache命令软连接’
*

memcached -d -m 32m -p 11211 -u root
'//-d守护进程 ;-m缓存大小32M ;-p端口11211;-u:指定用户登录’

netstat -ntap |grep memcache
'//检查是否开启成功’

tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 41801/memcached
tcp6 0 0 :::11211 ::😗 LISTEN 41801/memcached

1.1.5 memcache测试

yum install telnet -y
'//安装Telnet软件’

telnet 127.0.0.1 11211
'//使用telnet连接memcache’

Trying 127.0.0.1…
Connected to 127.0.0.1.
Escape character is ‘^]’.

1.2 搭建memcache客户端(client)

注意:在LAMP架构基础上搭建
可以参考我的博客:https://blog.csdn.net/weixin_48191138/article/details/108315065

1.2.1 修改主机名

hostnamectl set-hostname client
su

1.2.2 上传软件包并安装配置优化

cd /opt
tar zxvf memcache-2.2.7.tgz
cd memcache-2.2.7/
/usr/local/php5/bin/phpize
'//生成memcache配置文件’

./configure
–enable-memcache
–with-php-config=/usr/local/php5/bin/php-config

make && make install

解释:
–enable-memcache
‘//开启memcache’
–with-php-config=/usr/local/php5/bin/php-config
'//关联php配置文件’

Installing shared extensions: /usr/local/php5/lib/php/extensions/no-debug-zts-20131226/ '//共享文件位置,后面要用

vim /usr/local/php5/php.ini
…省略内容
‘//搜索extension_dir’
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = “./”
; On windows:
; extension_dir = “ext” ‘//在下方插入两段内容’
extension_dir =usr/local/php5/lib/php/extensions/no-debug-zts-20131226/
‘//指向共享文件位置’
extension = memcache.so
‘//指向memcache模块’
…省略内容

1.3 测试服务端(client)

vim /usr/local/httpd/htdocs/index.php

<?php $memcache=new Memcache(); $memcache->connect('20.0.0.20',11211); $memcache->set('key','Memcache test Successfull!',0,60); $result=$memcache->get('key'); unset($memcache); echo$result; ?>

systemctl restart httpd

浏览器访问20.0.0.21/index.php
在这里插入图片描述

二、数据库基本操作

2.1 常用选项

set:表示按照相应的存储该数据,没有的时候增加,有的覆盖。
add:表示按照相应的添加该数据,但是如果该已经存在则会操作失败。
replace:表示按照相应的替换数据,但是如果该不存在则操作失败
cas:检查更新,更新因子需要相等
append:键值后追加数据
prepend:键值前追加数据
delete:删除
flush_all:清楚所有缓存数据

2.2 连接数据库

telnet 127.0.0.1 11211
'//使用telnet连接memcache’

add 添加:
add username 0 0 5
//0:不使用序列号,0:不设置过期时间,5:指定字节长度

12345
//字节长度不为5则会报错
STORED

查看输入的键值:
get username
//查看

VALUE username 0 5
12345
END

gets username
//查看

VALUE username 0 5 1
//1:更新因子,每次更新+1
12345
END

replace 是更新的意思,如果当前的键值名称不存在,就会更新失败
set 也是更新的意思,如果当前的键值名称不存在,会新建一个键值
replace username 0 0 2

12
STORED

gets username
VALUE username 0 2 2
12
END

cas 更新,依据更新因子进行更新,相同则更新
cas username 0 0 5 2
//更新因子需要相同’

12345
STORED

get username
VALUE username 0 5
12345
END

键值后追加数据:
append username 0 0 3
'//username后追加三个字节’

abc
STORED

get username
VALUE username 0 8
12345abc
END

键值前追加数据:
prepend username 0 0 3
//username前追加三个字节

abc
STORED

get username
VALUE username 0 11
abc12345abc
END

删除键值:
delete username
//删除username

DELETED

清除所有缓存数据 flush_all
flush_all

OK
get username
END

quit
Connection closed by foreign host.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值