(转)memcached简介与开发应用
来源:互联网 发布:jsaas 源码 编辑:程序博客网 时间:2024/06/14 08:31
【简介】
Memcached是开源的分布式cache系统,现在很多的大型web应用程序包括facebook,youtube,wikipedia,yahoo等等都在使用memcached来支持他们每天数亿级的页面访问。通过把cache层与他们的web架构集成,他们的应用程序在提高了性能的同时,还大大降低了数据库的负载。
Memcached处理的原子是每一个(key,value)对(以下简称kv对),key会通过一个hash算法转化成hash-key,便于查找、对比以及做到尽可能的散列。同时,memcached用的是一个二级散列,通过一张大hash表来维护。
【安装文件】
1. libevent
http://www.monkey.org/~provos/libevent/
2. memcached
linux版本
http://code.google.com/p/memcached/downloads/list
windows版本
http://code.jellycan.com/memcached/
http://www.ctochina.net/topic/show/2394
http://jehiah.cz/projects/memcached-win32/
3. memcached Manager
http://allegiance.chi-town.com/MemCacheDManager.aspx
4. libmemcache
C API(linux/windows)
https://launchpad.net/libmemcached/
C API(linux)
http://people.freebsd.org/~seanc/libmemcache/
C API(windows)
http://svn.coderepos.org/share/lang/c/libmemcached-win32/
.Net API
http://sourceforge.net/projects/memcacheddotnet/
【安装方法】
Windows下的Memcache安装:
1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached
2. 在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装
3. 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
4.下载php_memcache.dll,请自己查找对应的php版本的文件
5. 在C:\winnt\php.ini 加入一行 ‘extension=php_memcache.dll’
6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
Linux下的安装:
1. libevent安装
./configure
make
make install
2. memcached安装
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local
make
make install
3. 共享库软连接配置
32位系统执行
ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2
64位系统执行
ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib64/libevent-1.4.so.2
启动
/usr/local/memcached/bin/memcached -d -m 1024 -p 11211 -u root
**开机自启动(daemon)方式运行
#vim /etc/rc.d/rc.local
/usr/local/memcached/bin/memcached -d -m 1024 -p 11211 -u root 2>>/var/log/err.log
memcached的基本设置:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,
例如:
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid
也可以启动多个守护进程,不过端口不能重复。
如果要结束Memcache进程,执行:# kill `cat /tmp/memcached.pid`
【客户端开发】
1)创建实例
memcached_st *memcached_create(memcached_st *ptr)
2)连接memcached服务器
memcached_return memcached_server_add(memcached_st *ptr, const char *hostname, unsigned int port)
3)获取Key对应的value
char *memcached_get(memcached_st *ptr, const char *key, size_t key_length, size_t *value_length, uint32_t *flags, memcached_return *error)
4)设置Key对应的value
memcached_return memcached_set(memcached_st *ptr, const char *key, size_t key_length, const char *value, size_t value_length, time_t expiration, uint32_t flags)
5)Key对应的value加1
memcached_return memcached_increment(memcached_st *ptr, const char *key, size_t key_length, uint32_t offset, uint64_t *value)
6)Key对应的value减1
memcached_return memcached_decrement(memcached_st *ptr, const char *key, size_t key_length, uint32_t offset, uint64_t *value)
7)删除Key
memcached_return memcached_delete(memcached_st *ptr, const char *key, size_t key_length, time_t expiration)
8)销毁实例
void memcached_free(memcached_st *ptr)
9)设置访问方式(阻塞或不阻塞)
memcached_return memcached_behavior_set(memcached_st *ptr, memcached_behavior flag, uint64_t data)
10)删除所有Key
memcached_return memcached_flush(memcached_st *ptr, time_t expiration)
11)获取错误号对应的字符串错误信息
char *memcached_strerror(memcached_st *ptr, memcached_return rc)
【示例】
自己写了一个封装类抽时间上传,可以访问我的CSDN空间获取。
CMemcached.cpp
CMemcached.h
http://xwhrx.download.csdn.net/
【资料】
5. libevent、memcached、libmemcache
[1]. 安装相关
http://archive.cnblogs.com/a/1958106/ (win)
http://www.yayu.org/look.php?id=105
http://blog.csdn.net/kikikind/archive/2010/05/10/5576449.aspx
[2]. 开发介绍
c 读写memcache
http://hi.baidu.com/fdwm_lx/blog/item/53dd59c717a646d0d10060de
Memcached在大型网站中应用
http://www.douban.com/group/topic/2064584/
memcached批量删除方案探讨
http://it.dianping.com/memcached_item_batch_del.htm
本文原创,转载请注明出处 http://blog.sina.com.cn/faithfish
- (转)memcached简介与开发应用
- 【WEB开发】memcached的操作与应用
- Memcached简介与安装
- memcached简介与安装
- memcached简介(转)
- 分布式缓存系统Memcached简介与实践(转)
- 分布式缓存系统memcached简介与实践(转)
- 缓存应用--Memcached分布式缓存简介(二)
- memcached缓存服务器简介及其应用
- memcached的安装与应用
- memcached安装与简单应用
- Redis与Memcached的区别与简介
- memcached应用场景(转)
- 分布式缓存系统Memcached简介与实践
- 分布式缓存系统Memcached简介与实践
- 分布式缓存系统Memcached简介与实践
- 分布式缓存系统Memcached简介与实践
- 分布式缓存系统Memcached简介与实践
- 让html中的td自动换行
- javascript学习笔记
- Lambda表达式
- opencv 图片旋转90度
- 解决No tests found in JUnit 4测试类
- (转)memcached简介与开发应用
- android GridView 拖拽Item及滚屏实现
- PWM实现ADC和DAC
- 类QQ 的程序界面
- 【转】字典树[Trie]
- mysql 对同一个表select 和update
- Hadoop——你不得不了解的大数据工具
- [EGORefreshTableHeaderView]手动启动下拉更新的方法
- 温故而知新-归并排序(JAVA)