membercached 的应用
来源:互联网 发布:漫威电影观看顺序知乎 编辑:程序博客网 时间:2024/06/07 05:09
1、问题?
在web应用中都是将数据保存在RDBMS中的,应用程序从中读取数据然后在浏览器中显示的,但是在大数据量的网站中,用户量的增加和访问的集中会增加RDBMS系统的负担,数据库响应就会恶化,数据延迟等重大影响,另外数据不经常变的数据
2、:
是高性能的分布式内存缓存服务器管理软件。一般的使用目的是,通过缓存数据库查询结果,减少数据的访问次数,以提高动态web应用的速度,提高可扩展性。但是因为数据是存储到内存中的,所以内存缓存服务器宕机数据丢失。
原理:
1、检查客户端的请求数据,是否在中,如果有就直接返回数据,不再对数据库进行任何操作。
2、如果请求的数据不在中,就去查询数据库,把数据库中获取的数据返回给客户端,同时把数据使用程序缓存一份到中。
3、每次更新数据库的同时更新中的数据,保证一致性。
4、当分配给内存空间用完后,会使用LRU(最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后替换掉最近未使用的数据。
3、内存存储方式:
在计算机中,内存分配形式分为预先分配和动态分配,预先分配内存速度比较快,而动态分配比较节省资源,但是效率比较低。因此的内存分配是基于以上两种原理。显然,我们既然是为了大数据访问,获得更快的速度,我们有时候不得不以空间换时间(以资源换时间)。
的高性能源于两端哈希结构,就是一个巨大的,存储了很多<key,value>对的哈希表(图片,文件,数据等),通过hash(key)值,我们可以存储和查询任何数据,使用的协议是文本行的协议。如下:(498是由key使用哈希算法函数计算的数据地址) uname = tom
Uname => 34654323432
前一个addr 名字 数据 下一个addr
11 uname tom 102
102 age 20 13
注意:如果进行分布式数据缓存,单台服务器数据获取机制可以帮助我们自动寻找,但是,服务器选择时,就需要人工操作,编写选中规则。
4、Windows下d安装配置:
1、根据自己电脑选择版本安装mamcached
32bit:d-win32-1.4.4-14.zip
64bit: d-win64-1.4.4-14.zip
2、解压后将解压的文件夹命名d,放到和php同级目录下
3、d安装;
使用cmd找到d目录安装命令
d.exe -d install
使用cmd命令开启mamcache服务
d.exe -d start
使用cmd命令重启mamcache服务
d.exe -d restart
使用cmd命令关闭mamcache服务器
d.exe -d shutdown
使用cmd命令卸载mamcache
d.exe -d unstall
注意:服务器开启后可以在任务管理器进程中找到mamcached服务。
4、php扩展设置:
根据php版本下载相对应的mamcached扩展
64位电脑: php_-3.0.8-5.5-ts-vc11-x64.zip
32位电脑: php_-3.0.8-5.5-ts-vc11-x86
1) 将php_mamcache.dll 文件复制到php扩展目录ext下
2) 在php.ini文件中添加一行
Extension=php_mamcache.dll
3) 重启apache服务器。在phpinfo中能看到。
注意:memcache和d区别:
在服务器安装的软件叫做 d软件,用于内存管理。
在php中有两种memcache扩展:
libMemcache扩展库是由php官方提供的
(稳定性较好,更新较快,我们使用这种,将协议封装好,我们直接调用接口)。
libmamcached扩展苦是由mamcached官方提供的
更新不快,稳定不好,且是tcp协议的操作。是在mamcache基础上开发的。
5、PHP操作mamcache。
[1] 连接服务器
[2] 执行操作
[3]关闭服务器
$memcache = new Memcache;
5.1)Memcache链接
$memcache ->Connect($host,$port,$timeout)
Host:服务器名,ip地址
Port:端口号,默认端口是11211
返回值:返回一个memcache连接
5.2)mamcache关闭;
$mamcache ->Close(void)
【mem1.php】
5.3) 给内存设置值:
$mamcache -> set($key,$var[,$flag[,$expire]]);
$key:设置的mamcache键值。用于mamcache对应数据的标示。
$var: 存储的数据
$expire: 以秒为单位设置的失效时间。
$flag:如果你设置的值经过zlib压缩的,可以设置MEMCACHE_COMPRESSED
5.4) 从服务器端捡回一个元素值。
$mamcache -> get($key,$flag)
$key:获取某个元素标示字符串或者元素标示数组
$flag:是否压缩和序列化
0:未经过压缩和序列化
1:经过序列化但未压缩
2:经过压缩但未序列化
3:经过压缩并序列化
5.5) 返回服务器信息:
$mamcache -> getStats();
5.6) 增加一个条目:add只有不存在这个key时才添加一个key-value数据。
$mamcache -> add($key,$var[,$flag[,$expire]]);
$key:设置的mamcache键值。用于mamcache对应数据的标示。
$var: 存储的数据
$expire: 以秒为单位设置的失效时间。
$flag:如果你设置的值经过zlib压缩的,可以设置_COMPRESSED
5.7) 替换一个条目:只有条目存在时,才替换。
add只有不存在这个条目时才添加一个条目。
$mamcache -> replace($key,$var[,$flag[,$expire]]);
$key:设置的mamcache键值。用于mamcache对应数据的标示。
$var: 存储的数据
$expire: 以秒为单位设置的失效时间。
$flag:如果你设置的值经过zlib压缩的,可以设置_COMPRESSED
5.8) 删除一个条目:
$mamcache -> delete($key,$timeout);
$key:删除的条目标示.
$timeout: 过期时间。
5.9) 增加和减少一个元素值:
$mamcache -> increment($key,$value):将mamache中的值增加value
$mamcache -> decrement($key,$value):将mamcache中的值减少value
5.10) 清除所有的已经存储的元素:
$ -> flush();
5.11) 获取服务器信息:
$ -> getStatus()
5.12) 连接池:会自动根据算法将缓存的数据分配到不同的mamcache中。
$ -> addserver($host,$port,$pconent);
增加一台服务器到链接池中,如果一台宕机,其他可以立马零错误使用缓存。一般大数量,高并发网站中使用连接池。
$ ->getServerStatus($hos,$port):切换备用服务器时用于判断,0代表离线,非零代表在线。
$ -> getExtendedStatus():返回连接池中所有的服务器信息。
【mem4.php】
6、TP框架中使用:
6.1)TP配置:
找到confg-> convention.php文件
'DATA_CACHE_TYPE' => '',
存放位置为: Think/cache/drivers/下;
6.2) 配置初始化:
S(array(
'type'=>'',
'host'=>'192.168.1.10',
'port'=>'11211',
'prefix'=>'think',
'expire'=>60)
);
6.3、设置值
S(“key”,”value”)
6.4、获取值:
S(“key”);
6.5、删除值:
S(“key”,null);
- membercached 的应用
- membercached安装与部署及应用
- pivot 的应用,有图有应用
- Servlet应用---HttpServletRequest的应用
- Servlet应用---HttpServletRequest的应用
- Servlet应用---HttpServletRequest的应用
- Servlet应用---HttpServletRequest的应用
- Servlet应用---HttpServletRequest的应用
- Servlet应用---HttpServletRequest的应用
- Servlet应用---HttpServletRequest的应用
- AndroidMenu的应用之OptionMenu的应用
- 模型的应用 && Xib &&代理模式的应用【应用管理】
- 工作流的应用之shark+jawe应用
- 应用图在地图方面的应用
- LBFGS应用---alglib的c++版本应用
- 基于应用程度的系统应用优化
- 基于应用程度的系统应用优化
- [Struts2应用开发] JSON的应用
- ICTCLAS的Python3实现
- python3 pip 升级命令
- 计算机网络学习笔记1
- 前端资源集合大全
- 使用wpa_cli调整打印级别
- membercached 的应用
- Java序列化JSON时long型数值不准确
- Angular js 对添加用户,修改密码,敏感字,下拉菜单的综合操作
- 4.2.zookeeper数据结构及操作
- phonegap与H5中的接口对比
- 姐姐给我推荐的两个期刊数据库索引
- Windows Android Studio安装教程
- 网页上不可选中文字的那些事儿
- 移动端样式小技巧