Memcached安装与配置
欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。
欢迎跳转到本文的原文链接:https://honeypps.com/backend/memcached-install-and-config/
memcached是danga.com的一个项目,它是一款开源的高性能的分布式内存对象缓存系统,最早是给LiveJournal提供服务的,后来逐渐被越来越多的大型网站所采用,用于在应用中减少对数据库的访问,提高应用的访问速度,并降低数据库的负载。
为了在内存中提供数据的高速查找能力,memcached使用key-value形式存储和访问数据,在内存中维护一张巨大的HashTable,使得对数据查询的时间复杂度降低到O(1),保证了对数据的高性能访问。内存的空间总是有限的,当内存没有更多的空间来存储新的数据是,memcached就会用LRU算法将最近不常访问的数据淘汰掉,以腾出空间来存放新的数据。memcached存储支持的数据格式也是灵活多样的,通过对象的序列化机制,可以将更高层抽象的对象转换成为二进制数据,存储在缓存服务器中,当前端应用需要时,又可以通过二进制内容反序列化,将数据还原成原对象。
由于memcached使用了libevent来进行高效的网络连接处理,因此在安装memcached之前,需要先安装libevent。
所有的安装包可以在这里下载。
安装libevent
版本 libevent-2.0.21-stable.tar.gz(假设放在/root目录下)
[root@zzh ~]# mkdir libevent
[root@zzh ~]# tar -zvxf libevent-2.0.21-stable.tar.gz
[root@zzh ~]# cd libevent-2.0.21-stable
[root@zzh libevent-2.0.21-stable]# ./configure --prefix=/root/libevent
[root@zzh libevent-2.0.21-stable]# make
[root@zzh libevent-2.0.21-stable]# make install
测试libevent是否安装成功(没有必然性,只供参考)
[root@zzh libevent-2.0.21-stable]# ls -al /root/libevent/lib | grep libevent
lrwxrwxrwx. 1 root root 21 4月 5 22:05 libevent-2.0.so.5 -> libevent-2.0.so.5.1.9
-rwxr-xr-x. 1 root root 968722 4月 5 22:05 libevent-2.0.so.5.1.9
-rw-r--r--. 1 root root 1571586 4月 5 22:05 libevent.a
lrwxrwxrwx. 1 root root 26 4月 5 22:05 libevent_core-2.0.so.5 -> libevent_core-2.0.so.5.1.9
-rwxr-xr-x. 1 root root 585265 4月 5 22:05 libevent_core-2.0.so.5.1.9
-rw-r--r--. 1 root root 978314 4月 5 22:05 libevent_core.a
-rwxr-xr-x. 1 root root 980 4月 5 22:05 libevent_core.la
lrwxrwxrwx. 1 root root 26 4月 5 22:05 libevent_core.so -> libevent_core-2.0.so.5.1.9
lrwxrwxrwx. 1 root root 27 4月 5 22:05 libevent_extra-2.0.so.5 -> libevent_extra-2.0.so.5.1.9
-rwxr-xr-x. 1 root root 404884 4月 5 22:05 libevent_extra-2.0.so.5.1.9
-rw-r--r--. 1 root root 593344 4月 5 22:05 libevent_extra.a
-rwxr-xr-x. 1 root root 987 4月 5 22:05 libevent_extra.la
lrwxrwxrwx. 1 root root 27 4月 5 22:05 libevent_extra.so -> libevent_extra-2.0.so.5.1.9
-rwxr-xr-x. 1 root root 945 4月 5 22:05 libevent.la
lrwxrwxrwx. 1 root root 30 4月 5 22:05 libevent_pthreads-2.0.so.5 -> libevent_pthreads-2.0.so.5.1.9
-rwxr-xr-x. 1 root root 18462 4月 5 22:05 libevent_pthreads-2.0.so.5.1.9
-rw-r--r--. 1 root root 18662 4月 5 22:05 libevent_pthreads.a
-rwxr-xr-x. 1 root root 1008 4月 5 22:05 libevent_pthreads.la
lrwxrwxrwx. 1 root root 30 4月 5 22:05 libevent_pthreads.so -> libevent_pthreads-2.0.so.5.1.9
lrwxrwxrwx. 1 root root 21 4月 5 22:05 libevent.so -> libevent-2.0.so.5.1.9
安装memcached
[root@zzh ~]# mkdir memcached
[root@zzh ~]# tar -zvxf memcached-1.4.7.tar.gz
[root@zzh ~]# cd memcached-1.4.7/
[root@zzh memcached-1.4.7]# ./configure --prefix=/root/memcached --with-libevent=/root/libevent
[root@zzh memcached-1.4.7]# make
[root@zzh memcached-1.4.7]# make install
启动memcached
[root@zzh ~]# cd memcached/bin/
[root@zzh bin]# memcached -d -m 10 -u root -l 10.10.195.112 -p 11211 -c 32 -P /tmp/memcached.pid
参数描述:
-d :启动一个守护进程,
-m:分配给Memcache使用的内存数量,单位是MB,默认是64MB,
-u :运行Memcache的用户
-l :监听的服务器IP地址
-p :设置Memcache监听的端口,默认是11211 注:-p(p为小写)
-c :设置最大并发连接数,默认是1024
-P :设置保存Memcache的pid文件 注:-P(P为大写)
-f :块大小增长因子,默认是1.25
-n :最小分配空间,key+value+flags默认是48
-h :显示帮助
查看memcached进程
[root@zzh bin]# ps -aux | grep memcached
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 13904 0.0 0.0 326708 912 ? Ssl 22:26 0:00 ./memcached -d -m 10 -u root -l 10.10.195.112 -p 11211 -c 32 -P /tmp/memcached.pid
root 13912 0.0 0.0 103248 852 pts/2 S+ 22:27 0:00 grep memcached
关闭memcached进程(采用kill pid的命令)
[root@zzh bin]# kill `cat /tmp/memcached.pid`
或者
[root@zzh bin]# kill 13904
连接memcached
telnet 127.0.0.1 11211
memcache有一些常用的命令:set, add, replace,append, preappend, cas, get, incr, decr, delete等,详细可以查阅相关资料。
Java客户端与memcached
memcached官方提供的Memcached-Java-Client工具包含了对memcached协议的Java封装,使用它可以比较方便地与环城服务端进行通讯。
案例
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
import com.schooner.MemCached.MemcachedItem;public class MemcachedTest
{public static void init(){String servers[] = {"10.10.195.112:11211"};SockIOPool pool = SockIOPool.getInstance();pool.setServers(servers);pool.setFailover(true);pool.setInitConn(10);pool.setMinConn(5);pool.setMaxConn(25);pool.setMaintSleep(30);pool.setNagle(false);pool.setSocketTO(3000);pool.setAliveCheck(true);pool.setHashingAlg(SockIOPool.CONSISTENT_HASH);pool.initialize();}public static void main(String[] args){init();MemCachedClient mem = new MemCachedClient();mem.add("UserName", "zzzzh");mem.prepend("UserName", "hello ");mem.append("UserName", "!");System.out.println(mem.get("UserName"));mem.set("key", 1);System.out.println(mem.get("key"));MemcachedItem item = mem.gets("key");mem.cas("key", (Integer)item.getValue()+1,item.getCasUnique());System.out.println(mem.get("key"));}
}
输出结果:
hello zzzzh!
1
2
参考资料
- 《大型分布式网站架构设计与实践》陈康贤著
欢迎跳转到本文的原文链接:https://honeypps.com/backend/memcached-install-and-config/
欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。
Memcached安装与配置相关推荐
- linux 下的Memcached安装和配置
转载:http://hi.baidu.com/helios_sun/item/b902b90ed39054c12e4c6baf ************************* 主要是要安装php的 ...
- Memcached安装及配置
一.Memcached介绍 1.Memcached是国外社区网站LiveJournal团队开发,通过缓存数据库查询结果,减少数据库访问次数,从而提高动态web站点性能. 2.官方站点http://me ...
- centos下nginx+postgresql+php+memcached+apc安装与配置
2019独角兽企业重金招聘Python工程师标准>>> 具体安装步骤如下: 具体安装软件包: nginx1.0.13wget http://nginx.org/download/ng ...
- Windows下Memcached的安装与配置
Windows下Memcached的安装与配置 安装: 1.下载memcached, http://www.danga.com/memcached/ ; 2.解压,比如放在 D:\memcached- ...
- Memcached 1.4.22安装和配置
准备 1. 下载安装文件: 1 2 3 cd /tmp wget http://downloads.sourceforge.net/levent/libevent-2.0.22-stable. ...
- Memcached的安装及配置
一.安装Memcached及Memcached配置和状态查询 要想使用Memcached做缓存首先需要安装Memcached服务,安装方法如下: 1. 下载Mem ...
- Memcached安装以及PHP的调用
一:安装libevent 由于memcached安装时,需要使用libevent类库,所以先安装libevent 1.下载 #wget http://www.monkey.org/~provos/ ...
- linux下memcached安装 和redis安装,jdk,tomcat,mysql 安装
一.memcached安装yum search memcached yum -y install memcached memmcached -h service memcached restart c ...
- (九)OpenStack---M版---双节点搭建---Swift安装和配置(单存储节点)
↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 本次搭建仅采用Compute单节点做swift组件 1.Controller安装并配置控制节点 ...
最新文章
- R语言ggplot2可视化:可视化堆叠的直方图、添加每个分组的每个bin的计数标签、在堆叠直方图的bin中的每个分组部分添加数值标签
- css3-巧用选择器 “:target”
- Oracle常用批量操作
- 海上瓶子下有东西吗_《海上钢琴师》:宁愿一生孤独,不愿随波逐流。
- 静态long类型常量serialVersionUID的作用
- 浅谈智能电能表的远程预付费 系统设计
- 多年前的csdn账号找回啦
- 鸟哥的Linux私房菜_服务器架设篇 第三版
- linux怎么共享打印机驱动程序,为samba共享的打印机添加Windows驱动
- 智能车辆路径跟踪:carsim和simulink联合仿真,基于车速的变权重多点预瞄驾驶员模型个例
- 如何简单又快速的清理C盘内存
- 前端工程师的技术进阶点在哪里?
- 第一次出国旅行的启示录 —— 关于旅行与人生的思考
- 【高效工具】分享几个高质量PPT模板
- Wise Installation制作的安装包添加卸载快捷方式
- IE8报错:Unable to modify the parent container element before the child element is closed
- Excel表格左上角+绿色小标倒三角----
- 2006年1月13日
- 【java游戏项目】适合初学者练习的java小游戏--大鱼吃小鱼
- oracle静默安装指定组件,Oracle 11g 静默安装-db_install.rsp详解
热门文章
- c语言如何获取按键,c语言获得键盘的按键
- 同步阻塞、同步非阻塞、异步阻塞、异步非阻塞与 I/O 多路复用、Java NIO 之间的联系
- MakeFile中文手册(免费下载)-徐海兵整理
- C++ Tricks
- 从头开始敲代码之《从BaseApplication/Activity开始(五)》(自定义控件,实现点击/滑动翻页)...
- Python fabric实践操作
- find命令的技巧和一些例子
- 2021牛客多校6 - Defend Your Country(点双缩点求割点)
- c++中std::set自定义去重和排序函数
- POJ - 3630 Phone List(字典树)