`
sdu_wizard
  • 浏览: 99916 次
  • 性别: Icon_minigender_1
  • 来自: 亚特兰蒂斯
社区版块
存档分类
最新评论

Linux下Memcache服务器端的安装与两种java客户端调用示例

阅读更多
Linux下Memcache服务器端的安装与两种java客户端调用示例

Memcache安装:
1.Memcache用到了libevent这个库用于Socket的处理,如果系统没有安装libevent,需要先安装libevent。
官网:http://www.monkey.org/~provos/libevent/
这个东西在配置时需要指定一个安装路径,即./configure --prefix=/usr,然后make,然后make install。
测试libevent是否安装成功:
# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
-rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3
-rw-r--r-- 1 root root 454156 11?? 12 17:38 libevent.a
-rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3
如果有以上信息,表明libevent已经装好了。
2.下载memcache最新版本:
http://code.google.com/p/memcached/downloads/list
需要在配置时需要指定libevent的安装路径即./configure --with-libevent=/usr,然后make,然后make install,安装完成后会把memcached放到 /usr/local/bin/memcached 。
测试是否成功安装memcached:
# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug
memcached的基本设置:
1.启动Memcache的服务器端:
# /usr/local/bin/memcached -d -m 100 -u root -l 127.0.0.1 -p 12000 -c 256 -P /tmp/memcached.pid
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是100MB,
-u是运行Memcache的用户,我这里是root,
-l连接的IP地址, 默认是本机,
-p是设置Memcache监听的端口,默认是11211,
-c选项是最大运行的并发连接数,默认是1024,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
-f 块大小增长因子,默认是1.25,
-n 最小分配空间,key+value+flags默认是48,
-h 显示帮助,
-v 输出警告和错误信息,
-vv 打印客户端的请求和返回信息,
-M 内存耗尽时返回错误,而不是删除项

memcached启动的时候最容易出的一个错误时找不到libevent.so.2
报如下错误:error while loading shared libraries: libevent.so.2: cannot open shared object file: No such file or directory
这时候我们可以执行如下命令:LD_DEBUG=libs /usr/local/bin/memcached -v
2.如果要结束Memcache进程,执行:
# kill `cat /tmp/memcached.pid`

也可以启动多个守护进程,不过端口不能重复。


Java客户端:
目前主要有两种客户端:
1. https://github.com/gwhalin/Memcached-Java-Client/
2. http://code.google.com/p/spymemcached/
简单例子如下:
public  void testDanga() {
		/*初始化SockIOPool,管理memcached的连接池*/
		String[] servers = { "192.168.0.10:11211"};
		SockIOPool pool = SockIOPool.getInstance();
		pool.setServers(servers);
		pool.setFailover(true);
		pool.setInitConn(10);
		pool.setMinConn(5);
		pool.setMaxConn(250);
		//设置主线程睡眠时间,每30秒苏醒一次,维持连接池大小
		pool.setMaintSleep(30);
		//关闭套接字缓存
		pool.setNagle(false);
		//连接建立后的超时时间
		pool.setSocketTO(3000);
		pool.setAliveCheck(true);
		pool.initialize();
	    /*建立MemcachedClient实例*/
		MemCachedClient memCachedClient = new MemCachedClient();
		memCachedClient.set("key1", "haha");
		String result = (String) memCachedClient.get("key1");
		System.out.println(result);
	}
	
	public void testSpy() {
	    try{
			MemcachedClient mc = new MemcachedClient(new         InetSocketAddress("192.168.0.10", 11211));
			Future<Boolean> b = null;
			/*将key值,过期时间(秒)和要缓存的对象set到memcached中*/
			b = mc.set("key2", 9000, "heihei");
			Object result = mc.get("key2");
			if(null!=result){
				System.out.println(result.toString());
			}
			if(b.get().booleanValue()==true){
				mc.shutdown();
			}
		}catch(Exception ex){
			ex.printStackTrace();
		}
	}


设置用户名、密码:
启用SASL验证机制
SASL全称Simple Authentication and Security Layer,是一种用来扩充C/S模式验证能力的机制。
简单来说SASL是一个胶合(glue)库,通过这个库把应用层与形式多样的认证系统整合在一起。这有点类似于 PAM,但是后者是认证方式,决定什么人可以访问什么服务,而SASL是认证过程,侧重于信任建立过程,这个过程可以调用PAM来建立信任关系。在这里Memcached就是上面提到的应用层,具体的认证交给SASL库,SASL会根据相应的认证机制来完成验证功能。
默认情况下,Red Hat Enterprise Linux安装程序会自动安装Cyrus-SASL认证包。可使用下面的命令检查系统是否已经安装了Cyrus-SASL认证包或查看已经安装了何种版本。
Java代码  
1. rpm -qa | grep sasl 

下列结果表示已经安装.
Java代码  
1. cyrus-sasl-plain-2.1.23-8.el6.i686 
2. cyrus-sasl-devel-2.1.23-8.el6.i686 
3. cyrus-sasl-2.1.23-8.el6.i686 
4. cyrus-sasl-lib-2.1.23-8.el6.i686 
5. cyrus-sasl-gssapi-2.1.23-8.el6.i686 
6. cyrus-sasl-md5-2.1.23-8.el6.i686 

查看密码验证机制,输入:
Java代码  
1. saslauthd -v 

显示如下:
Java代码  
1. saslauthd 2.1.23 
2. authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap 

当前可使用的密码验证方法有getwent、kerberos5、pam、rimap、shadow和ldap
为简单起见,这里准备采用shadow验证方法,也就是直接用/etc/shadow文件中的用户账户及密码进行验证。因此,在配置文件/etc/sysconfig/saslauthd中,应修改当前系统所采用的密码验证机制为shadow,即:
Java代码  
1. MECH=shadow 

重启saslauthd进程
Java代码  
1. /etc/init.d/saslauthd restart 

结果如下:
Java代码  
1. 停止 saslauthd:[确定] 
2. 启动 saslauthd:[确定] 

测试SASL验证功能,查看saslauthd进程是否运行
Java代码  
1. ps aux | grep saslauthd 
如果没有发现saslauthd进程,则可用下面的命令启动该进程并设置它开机自启动
Java代码  
1. /etc/init.d/saslauthd start 
2. chkconfig saslauthd on 

可用下面的命令测试saslauthd进程的认证功能
Java代码  
1. /usr/sbin/testsaslauthd –u portaluser –p portaluserpassword 

其中,portaluser为Linux系统中的用户账户名,portaluserpassword为用户portaluser的密码。该命令执行后,如果出现如下所示的结果,则表示saslauthd的认证功能已起作用
Java代码  
1. 0: OK "Success." 
亦可以自己添加用户给指定的程序,使用如下命令:
Java代码  
1. /usr/sbin/saslpasswd2 -a memcached -c portaluser 
要求输入密码:
Java代码  
1. Password:  
2. Again (for verification):  
添加完用户可以使用上面测试命令验证一下是否成功,添加的用户必须是系统中的用户,上面命令的意思就是,给memcached服务添加可访问的用户,没有添加的系统用户仍然是不可以访问该服务的。

sasl搞定之后就可以安装memcached了。
分享到:
评论

相关推荐

    memcached linux安装说明+ java客户端调用例子

    在Linux系统上安装和配置memcached,并通过Java客户端进行调用是常见的操作流程,下面将详细介绍这一过程。 ### 一、memcached的Linux安装 1. **更新系统**: 首先确保你的Linux系统已经更新到最新版本,运行`sudo ...

    memcache实现java客户端

    4. **安装与配置**:在Windows环境下,你需要首先下载并安装Memcache服务器,然后配置服务端口(默认为11211)。确保服务器正常运行后,就可以在Java应用中连接到它。 5. **连接Memcache**:使用Java客户端连接到...

    memCache源码java客户端

    在Java中,我们可以使用各种客户端库来与memCache进行交互,本文将主要探讨Java客户端的实现细节。 ### 一、memCache客户端库 Java社区提供了多种memCache客户端,如spymemcached、xmemcached、memcached-client等...

    CentOS 安装 Memcache 服务器. java 做客户端.

    本主题将探讨如何在CentOS操作系统上安装Memcache服务器,并利用Java作为客户端与之交互。以下是详细的步骤和相关知识点。 首先,我们需要在CentOS上安装Memcache服务器。这通常涉及以下几个步骤: 1. **更新系统*...

    java实现memcache服务器的示例代码

    Java 实现 Memcache 服务器的示例代码 Memcache 是一个高性能的分布式内存对象缓存系统,通过在内存里维护一个统一的巨大的 hash 表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等...

    MemCache服务器端和使用说明

    **MemCache服务器端详解** MemCache是一款高性能的分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高应用程序性能。它基于一个简单的理念:将数据存储在内存中,以便快速访问。由于数据存储...

    JAVA的memcache服务器安装以及相关最新jar包

    "java环境下的memcache服务器安装指导,以及在java中测试的jar包" 描述中提到的两个关键点: 1. **Memcached服务器安装**:在Java环境下安装Memcached服务器通常涉及下载和运行Memcached服务器软件。首先,你需要从...

    Linux安装Memcache

    本文将详细介绍如何在Linux环境下安装和配置Memcache服务器端及PHP扩展。 首先,确保你的系统满足基本的安装条件。你需要一个支持编译的环境,通常在Linux发行版中,如Ubuntu、CentOS或Debian,这些环境已经预装。...

    Linux环境下Memcache的安装

    在Linux环境中,Memcache是一种广泛使用的内存对象缓存系统,用于提高Web应用程序的性能。它通过将数据存储在内存中,避免了频繁的数据库访问,从而显著提升了响应速度。本教程将详细介绍如何在Linux上安装Memcache...

    Linux下Memcache的源码安装

    在Linux系统中,Memcached是一种高性能的分布式内存对象缓存系统,常被用来加速网站的动态数据访问。本文将详细讲解如何在Linux环境下通过源码安装Memcached,并涉及其依赖库libevent的安装过程。 首先,我们需要...

    memcache for linux

    linux平台使用的memcache压缩包,解压缩之后运行make && make install安装, 然后/usr/local/memcache/bin/memcache -d -m 1024 -u root -p 11211 -c 1024命令运行memcache

    Java开发中的Memcache原理及实现

    在Java环境中,我们可以借助各种客户端库来与Memcached进行交互。下面将详细介绍Memcached的工作原理以及在Java开发中的具体实现。 1. Memcached的工作原理: - 分布式存储:Memcached采用分散式哈希(Distributed...

    memcache服务器端

    memcache服务器端 版本:1.2.1 安装方法:在cmd下,切换到解压目录,执行以下命令 memcached.exe -k install memcached.exe -k start 即可。以后每次开机,会自动作为服务启动,不需要的话,自己去服务中关闭自动启动

    在Linux下memcache安装配置文档

    在深入探讨Linux下memcache的安装与配置过程之前,我们先来了解一下memcache的基本概念及其在现代IT架构中的重要性。Memcache(现在通常指代memcached)是一种高性能的分布式内存对象缓存系统,用于加速动态Web应用...

    java调用memcache简单实例

    介绍:memcache缓存的一...linux上需要安装libevent。具体安装请到资料中查找。 memcache客户端:xmemcached-2.0.0.jar 这里又加入了很多spring的jar包,是应为TestSpringMemcache.java中把memcache整合到spring中。

    linux MemCache 安装手册

    Linux MemCache 安装手册 Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问速度。这个安装手册将引导你完成在Linux环境下安装和配置Memcached的过程...

    memcache安装与基本操作详解

    ### Memcache安装与基本操作详解 #### 一、前言 Memcache是一种高性能的分布式内存对象缓存系统,用于加速动态Web应用,减轻数据库负担。本文将详细介绍如何安装配置Memcache,并提供基本的操作示例。 #### 二、...

    memcache 客户端监控工具编译版(window版)

    在基于Windows的环境中,由于其主要设计为Linux环境下的服务,因此在Windows上使用通常需要借助第三方客户端工具进行管理和监控。这个压缩包提供的是一个专为Windows编译的MemCache客户端监控工具,这对于Windows...

    java的memcache的服务器以及引用jar包河测试案例

    首先,让我们了解如何在Java环境下安装和配置Memcached服务器。Memcached通常作为守护进程在操作系统上运行,你可以通过下载源码或者二进制包来安装。对于Linux系统,可以使用`apt-get`或`yum`命令来安装,对于...

Global site tag (gtag.js) - Google Analytics