当前位置: 首页 > news >正文

网站转化率低百度seo是啥

网站转化率低,百度seo是啥,做设计任务的网站,魔贝课凡seo课程好吗memcached是一套分布式的快取系统#xff0c;当初是Danga Interactive为了LiveJournal所发展的#xff0c;但被许多软件#xff08;如MediaWiki#xff09;所使用。这是一套开放源代码软件#xff0c;以BSD license授权协议发布。[1]memcached仅支持一些非常简单的命令 比…memcached是一套分布式的快取系统当初是Danga Interactive为了LiveJournal所发展的但被许多软件如MediaWiki所使用。这是一套开放源代码软件以BSD license授权协议发布。[1]memcached仅支持一些非常简单的命令 比如get获取某个键值 set用来设定或保存一个缓存其本身是缓存服务器但本身无法决定缓存任何数据其缓存机制依赖于服务端和客户端两者必不可少存储是由服务端进行存储但存储什么是由客户端进行决定的因此客户端要自己提供缓存的键名以及时长、标志位、整个数据大小等等 例如只存储hello 但只存储60秒set key 5 60 hello并告知服务器端这样存储过了60秒后由服务端进行清除数据但是其工作机制非常独特其缓存功能是基于Lazy模型的只要空间未满则不清理 那么问题来了如果空间过小而需缓存的内容过大的话那么导致缓存抖动非常严重存完即清理其次再去缓存这样会导致命中率下降而毫无意义有些时候有些数据管理不善有可能导致缓存崩溃等如果memcached崩溃仅导致业务层的影响最多是速度降低 而不会导致数据层 memcached如何实现缓存的memcached通过内存进行缓存数据但并不实现持久缓存 存数数据的下限最小为48字节最大不能超过1MB 但存储的数据大小有可能不一致比如index.html10ktest.jpg34k 那memcached如何在内存中管理缓存数据 假如我们分别存储不同大小的数据以上为例很显然只要分配一个足够大的空间就可以了但是在内存中去找对应的数据我们必须要有对应的缓存对象的边界起始存储位地址和结束存储位地址将其当做独立的单位来管理等其缓存失效了空间会被腾出时间久了可能会带来碎片因为存储的都是非常小的数据单元按理说如果再想高速利用则会困难所以在这种机制下memcached的存储数据 查询数据等操作都是非常缓慢的由此不停快速基于内存的申请、释放反复操作这种释放本身也消耗大量的资源和时间因此我们需要一种高效的机制来解决内存的创建和释放的问题对于memcached来讲首要必须解决这类内存碎片问题不然由于内存的碎片导致进程运行的非常缓慢 在linux内核中引入了两种机制避免内存碎片 1.buddy system    伙伴系统为了实现整个内存中以页面方式管理内存的时候有足够大的连续内存空间可用的在物理内存中事实上内存的管理和分配在内核级别通常以页面方式分配和使用的通常是4k大小一个页面buddy就是为了将这些零碎的、空闲的合并成一个连续的大的内存空间这样就避免了页面之间产生碎片的因此其主要目的是为了避免内存外碎片 2.slab allocator  slab分配器实现将存储小于页面单位的非常小的数据内存结构的时候之前事先分配并随时等待有需求的进程或要存储的对象使用当我们使用之后它也不会自动消毁结构而是随时重复使用避免内存内部碎片 最新版本的memcached使用的是增长因子growth factor来明确定义起始点开始依次增长比如我们定义增长因子为其2倍我们存储一个单位为48bytes,那么会分配其48*2  96bytes如果增长因子为1.1倍那么4848*1.1一旦存储空间满了则会清理没有存满则不会清理数据 memcached也支持分布式缓存基础概念memcached也支持分布式缓存但是彼此之间不会通信但是一个memcached也不会缓存过多数据如果将来缓存的数据很大的话那只能使用多台memcached提供服务假设这么一个场景前端的应用服务器很多这些服务器角色都需要连接至数据库为了加速数据库的性能可对其提供memcached服务器经过一段时间观察我们的memcached数据库缓存过多请求量过大一台机器根本扛不住这时需要对其扩容。于是我们又加入了一台memcached但是memcached服务器之间是不能通信的所以某一应用服务器A 要缓存数据不能只盯一台memcached所以我们要让其轮流来提供服务但是对memcached而言它的分布式算法是在应用程序客户端中实现的而不是取决于服务器自身 客户端是如何分布式调度服务端需要一定分布式算法和调度器如果memcached非常多的话完全可以使用第三方调度器进行调度比如nginx持久连接 或一致性哈希算法参考http://blog.csdn.net/kongqz/article/details/6695417 总结1、在内存中缓存2、内存要使用slab allocator将其分配成很多slab trunk,每个trunk用来存储一类数据的而真正存的数据很有可能不会被精确匹配而我们需要给其找一个最佳的匹配机制就是用来slab trunk来存储 但是难免会浪费内存空间但是可以让我们内存分配效率非常高  安装配置memcached服务Memcached依赖于libeventAPI库所以首先要安装libevent[roottesttools]# tar xf libevent-2.0.21-stable.tar.gz [roottesttools]# cd libevent-2.0.21-stable[roottestlibevent-2.0.21-stable]# ./configure --prefix/usr/local/memcached--with-libevent/usr/local/libevent[roottestlibevent-2.0.21-stable]# make  make install安装memcached[roottesttools]#cd memcached-1.4.15[roottestmemcached-1.4.15]# ./configure --prefix/usr/local/memcached--with-libevent/usr/local/libevent  make  make install 启动memcached启动之前我们先来看一下memcahced关键的几个参数关键参数说明[rootnode1bin]# ./memcached -h-p 监听tcp协议的监听端口-T 监听UDP协议id监听端口默认都是11211 -s 如果只在本地通信那么可以将其监听在某个套接字上比如mysql.scok 能够利用共享内存方式进行通信的-c 最大并发连接数-l 监听的地址如果服务器有多块网卡那么用-l来指定监听的某个网卡上-d 以一个服务方式运行-r 设定最大内核大小限制-u 以某个用户身份运行-m  以兆为单位指定memcached最大内存可用空间-t 用于处理入站请求最大的线程数仅在memcached编译时开启了支持线程才有效而linux对线程支持是非常有限的所以不用关心了-f 设定slab定义预先分配内存空间大小固定的块时使用的增长因子-n 最小的存储单位是多大默认是48字节单位是字节-P 指定pid文件-L 视图使用最多的内存空间-S 启用SSL认证功能启动memcached这里先放在前台运行并观察其增长因子如下所示[roottestbin]# /usr/local/memcached/bin/memcached -m 128 -n 20 -f 1.25 -vv -u nobodyslabclass1: chunksize72 perslab14563slabclass2: chunksize96 perslab 10922slabclass3: chunksize120 perslab 8738slabclass4: chunksize 152 perslab 6898slabclass5: chunksize192 perslab5461slabclass6: chunk size240 perslab4369slabclass7: chunk size304 perslab3449#################中间略#################slabclass40: chunk size493552 perslab2slabclass41: chunk size616944 perslab1slabclass42: chunk size771184 perslab1slabclass43: chunksize1048576perslab126server listening (auto-negotiate)27server listening (auto-negotiate)28send buffer was 229376, now 26843545628server listening (udp)29send buffer was 229376, now 26843545629server listening (udp)28server listening (udp)29server listening (udp)28server listening (udp)29server listening (udp)28server listening (udp)29server listening (udp)chunk size 表示最小为72 以1.25倍的方式增加slab class 表示分配给Slab之后根据slab的大小切分成chunk,chunk用于缓存记录,特定大小的chunk组称为slab classperslab 表示一共有多少个空闲空间可用 结束进程将增长因子换种方式增长并观察效果[roottestbin]# /usr/local/memcached/bin/memcached -m 128 -n 20 -f 1.1 -vv -u nobodyslabclass1: chunksize72perslab14563slabclass2:chunk size80 perslab13107slabclass3:chunk size88 perslab11915slabclass4: chunksize96perslab10922slabclass5: chunk size112 perslab9362slabclass6: chunk size128 perslab8192###################中间略#################slabclass95: chunk size750904 perslab1slabclass96: chunk size826000 perslab1slabclass97: chunk size908600 perslab1slab class98: chunk size1048576 perslab1以上我们很明确对比出其差别 由此接下来我们就将其放在后台运行加入-d参数[roottestbin]# /usr/local/memcached/bin/memcached -m 128 -n 20 -f 1.1-u nobody -d查看监听端口[roottestbin]#netstat -lntup | grep memcachetcp00 0.0.0.0:112110.0.0.0:*LISTEN9464/memcachedtcp00 :::11211:::*LISTEN9464/memcachedudp00 0.0.0.0:112110.0.0.0:*9464/memcachedudp00 :::11211:::*9464/memcached 连接memcahced[roottestbin]# telnet 127.0.0.1 11211使用add命令为memcahced新建键格式addkeyname flag  timeout  datasize例如addmykey 0 10 12Hello world!30add mykey 0 10 12hello30add mykey 0 10 12hello 让php支持memcached[roottesttools]# tar xf memcache-2.2.6.tgz[roottest tools]# cd memcache-2.2.6[roottestmemcache-2.2.6]# /usr/local/php/bin/phpizeConfiguringfor:PHP ApiVersion:20100412ZendModule Api No:20100525ZendExtension Api No:220100525[roottestmemcache-2.2.6]# ./configure --with-php-config/usr/local/php/bin/php-config--enable-memcache[roottestmemcache-2.2.6]# make  make install编译成功后可以看到有如下反馈信息将其路径记下Installingshared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/查看模块是否存在[roottestmemcache-2.2.6]#ls/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/memcache.so将其模块写入至php.d/目录下[roottestmemcache-2.2.6]# echoextension/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/memcache.so/etc/php.d/memcache.ini重启fastcgi[roottestmemcache-2.2.6]# /etc/init.d/php-fpm restart访问phpinfo并查看是否有memcache模块扩展如下所示 对memcached功能进行测试建立php测试页面内容如下[rootnode1htdocs]# vim test.php ?php$mem  new Memcache;;创建memcache对象连接其11211端口 如果能连接则说明可以访问memcache$mem-connect(127.0.0.1, 11211)  or die(Could notconnect);  ;如果服务能连接上则显示其版本号是多少$version  $mem-getVersion();echo Servers version: .$version.br/\n;;并且创建key名称为hellokey 内容为hello world 期限为600秒这里没有长度其会自动判断长度$mem-set(hellokey, Hello World, 0, 600) or die(Failed to savedata at the memcached server);echo Store data in the cache (data will expire in 600seconds)br/\n;$get_result  $mem-get(hellokey);echo $get_result is from memcached server.;    ?访问测试连接memcahced 可以看到我们保存的键值与上一致[roottesthtdocs]#telnet 127.0.0.1 11211Trying127.0.0.1...Connectedto 127.0.0.1.Escapecharacter is ^].get hellokeyVALUEhellokey 0 11HelloWorldEND由此可见我们的php可以使用memcache了 将php的session会话信息保存至memcached当中编辑php.ini配置文件找到session相关参数session.save_handler files     #默认是使用文件保存session的更改为session.save_handler memcachesession.save_pathtcp://127.0.0.1:11211?persistent1weight1timeout1retry_interval15如果memcahced使用的是公网服务器的话最好使用其公网地址保存退出并重启服务[roottesthtdocs]# /etc/init.d/php-fpm restartGracefullyshutting down php-fpm . doneStartingphp-fpmdone创建测试页setsession.php[roottesthtdocs]# cat setsession.php?phpsession_start();if(!isset($_SESSION[test])) {$_SESSION[test]  time();}print$_SESSION[test];printbrbr;printSession ID:  . session_id();? 新建php页面showsess.php获取当前用户的会话ID[roottesthtdocs]# cat showsess.php?phpsession_start();$memcache_obj new Memcache;$memcache_obj-connect(127.0.0.1,11211);$mysesssession_id();var_dump($memcache_obj-get($mysess));$memcache_obj-close();?而后找一其他主机使用负载均衡轮询到不同的主机上可以发现无论刷新至哪个页面 其用户的session是一样的访问setsession.php1399775256         #为获取时间Session ID: 9a0itlgjlurghq83ibvmol5pc7     #为session的id号 获取session可以看到其时间是与上面setsession是一样的 总结这样一来比php将session保存在本地效率要快很多如果以后要使用多台memcached的话至于开发程序能否实现负载均衡到底是使用取余的算法还是使用一致性哈希的算法完全要看开发人员的决定了感谢各位。
http://www.sadfv.cn/news/297337/

相关文章:

  • 怎么做网站推广软件如何自己搭建网站
  • 山东济宁省建设厅官方网站中小企业公共服务平台网站建设
  • 朋友 合同 网站制作做网站需要审批不
  • 大连网站建设怎么做莆田的外贸网站
  • 如何改网站的内容工艺品网站模版
  • 网站建设项目中标通知网络推广常见的方法
  • 与网站建设有关的招标文件怎么查网站有没有做301
  • 旅游网站论文做一个网站APP价格
  • 表格上传网站中国做外贸的网站有哪些内容
  • 建设部网站黑臭水体公布免费免费建站
  • 临沂网站制作哪家好老域名新网站
  • 重庆企业网站建设报价怎么查看网站打开速度
  • 淄川响应式网站建设唐山建站公司模板
  • 专业的网站制作设计深圳电商网站制作
  • 做商城网站数据库分类该有哪些wordpress大前端
  • 做网站1200外国做水吧设计的网站
  • 网站建设侵权肇庆市建设局网站
  • 温州免费做网站天津网约车
  • 浙江建设干部学校网站首页国内python 做的网站
  • 网站快速排名工具龙岗做网站建设
  • 学校建设网站的背景机关门户网站 建设 方案
  • 安平有做网站推广的吗一个企业网站文章多少适合
  • 常州钟楼建设局网站中国建筑装饰装修官网
  • 学做网站的网站如何制作网站板块
  • 自己做网站难么python开发订阅号
  • 做面料那几个网站做淘宝网站多少钱
  • 电子商务网站建设与管理 教案wordpress 流程审批
  • 杭州网站制作建设网站域名一年大概多少
  • 企业网站建设项目实践报告正安县网站seo优化排名
  • 吉林省公司注册网站保定专业做网站公司