memcached的安装及配置
来源:互联网 发布:网络神剧排行榜2016 编辑:程序博客网 时间:2024/05/18 00:14
memcached
首先memcached是一个高性能的分布式内存对象缓存系统,用于动态的web应用,用来减轻数据库的负载。属于一种nosql。用来减少对数据库的读取次数,从而提高动态、数据库驱动网站的速度。memcached基于一个存储键值对key/value的hashmap。随着微信,微博等等应用的火爆,往往点赞,或者粉丝的数量不停的加一,要是不停的因为这个而频繁读写数据库,那对数据库将带来巨大无比的压力。
首先看看打开一个站点需要多少个请求。
这里只是打开了腾讯的首页,就一下子发出了这么多个请求。
接下来就是memcache了。memcache是个典型的key:value。就相当于字典一样。
但是要把web的对象缓存起来是什么意思呢。其实就是key就是uri路径。而uri对应的数据就是value。
memcache及支持纯文本又支持二进制。
memcached是一个内存缓存服务器。并不实现持久缓存。
但存在内存中,就有内存碎片问题。为了解决内存碎片问题,其实在linux内核中为了解决内存碎片,有两个机制
buddy system(伙伴系统) 避免内存外部碎片
slab allocator(slab分配器)就是重复使用一段页面(4k)。slab将内存的页面分为已用的和空闲的(为inode,进程等提前都编好了座)。
当然memcached的是否使用,需要php,c++等程序去调用,就是memcached是个服务,但用不用取决与程序员是否去调用。
看看memcached的站点吧。
他本身是事件驱动的,依赖于libevent这个库。
[root@localhost ~]# rpm -q libeventlibevent-1.4.13-4.el6.x86_64[root@localhost ~]#编译memcached。
先安装libevent
[root@master Downloads]# tar xf libevent-2.0.21-stable.tar.gz [root@master Downloads]# cd libevent-2.0.21-stable[root@master libevent-2.0.21-stable]# ./configure --prefix=/usr/local/libevent[root@master libevent-2.0.21-stable]# make && make install编译memcached
[root@master Downloads]# tar xf memcached-1.4.15.tar.gz [root@master Downloads]# cd memcached-1.4.15[root@master memcached-1.4.15]# ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent[root@master memcached-1.4.15]# make && make install
看看编译后都生成了什么。
[root@master memcached-1.4.15]# cd /usr/local/memcached/[root@master memcached]# lsbin include share[root@master memcached]#其中有个命令叫做memcached。
-p <num> 指定tcp的监听端口
-U <num> 指定udp的监听端口
-s <file> 监听在unix套接字上
-d 使用服务的形式运行。
-m <num> 指定缓存的最大内存空间
-n <bytes>指定最小的slab chunk大小
启动memcached。
[root@master bin]# /usr/local/memcached/bin/memcached -m 100 -u nobody -d[root@master bin]# ss -altState Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 :::memcache :::* LISTEN 0 128 *:memcache *:* LISTEN 0 128 *:rquotad *:* LISTEN 0 128 :::sunrpc :::* LISTEN 0 128 *:sunrpc *:*
使用telnet去连接那个端口11211.
[root@master bin]# telnet localhost 11211Trying ::1...Connected to localhost.Escape character is '^]'.add mykey 0 30 5helloSTORED
安装memcache的PHP扩展。
[root@nginx Downloads]# tar xf memcache-2.2.5.tgz [root@nginx Downloads]# cd memcache-2.2.5[root@nginx memcache-2.2.5]# /usr/local/php/bin/phpize Configuring for:PHP Api Version: 20100412Zend Module Api No: 20100525Zend Extension Api No: 220100525[root@nginx memcache-2.2.5]# ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache[root@nginx memcache-2.2.5]# make && make install
编译后得到的一个路径,这个很重要,需要记下来。
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
创建目录。并创建配置文件。
[root@nginx memcache-2.2.5]# mkdir /etc/php.d[root@nginx memcache-2.2.5]# vim /etc/php.d/memcache.ini
/etc/php.d/memcache.ini的内容如下。
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20100525/memcache.so
编辑一个php的测试页。
<?php$memcache = new Memcache;$memcache->connect('127.0.0.1', 11211) or die ("Could not connect");$version = $memcache->getVersion();echo "Server's version: ".$version."\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 theserver");echo "Store data in the cache (data will expire in 10 seconds)\n";$get_result = $memcache->get('key');echo "Data from the cache:\n";var_dump($get_result);?>test.php (END)
再复制一个php缓存的监控页面过来。(这个页面在memcache的源码包里。修改里面的访问主机地址)
[root@nginx memcache-2.2.5]# cp /root/Downloads/memcache-2.2.5/memcache.php /usr/html/
通过反复访问测试页,发现缓存的集中率明显变高了。
nginx配置memcache的方法。
location / { root html; index index.php index.html index.htmi; set $memcached_key $uri; memcached_pass 127.0.0.1:11211; default_type text/html; }
1 0
- Memcached的安装及配置
- memcached的安装及配置
- 安装Memcached及Memcached配置
- Memcached安装及配置
- memcached的安装、配置及使用
- memcached 的安装及相应的php配置
- CentOS安装memcached及配置php的memcache扩展
- memcached 在linux下的安装配置,及java操作
- memcached的安装及使用
- memcached的安装及使用
- memcached安装配置及保存php session于memcached
- CentOS7 安装Memcached及ownCloud9.1配置Memcached
- Memcached安装及配置使用实例
- memcache/memcached/memcachedb 区别、配置及安装
- windows环境下安装及配置memcached
- Memcache与Memcached介绍及安装配置
- Linux下安装配置Node及memcached
- centos7安装memcached及配置等
- 对SVM的理解
- Mysql高可用--双主热备+keepalived
- eclipse或者sts在注解提示是卡顿一会报错解决办法
- 登录帐号密码代码
- 108:Sort List
- memcached的安装及配置
- GC_1_学习GC之前
- 清除浮动
- 个人测试题目
- HDU3466~Proud Merchants(01背包+贪心)
- 命令操作SQL Server数据库创建数据库时参数设置
- web项目整合Jasperreports springMVC 或者Struts 整合 Jasperreports
- NS2相关学习——在ns中模拟无线场景
- 第2章-使用Express.js4创建Node.js的Web应用程序-2.2.Express.js的安装