memcached客户端_Memcached Java客户端示例

memcached客户端

Today we will look into Memcached Java client example. Earlier we learned about telnet commands for memcached with sample execution terminal logs. But most of the times we want to connect to the Memcached server through some other programming languages, such as Java and PHP.

今天,我们将研究Memcached Java客户端示例。 之前我们了解了带有示例执行终端日志的用于memcached的telnet命令 。 但是大多数时候,我们希望通过其他一些编程语言(例如Java和PHP)连接到Memcached服务器。

Memcached Java客户端 (Memcached Java Clients)

There are three most widely used memcached Java client API.

有三种使用最广泛的内存缓存Java客户端API。

  1. xmemcached

    xmemcached
  2. spymemcached

    spymemcached
  3. gwhalin memcached client

    gwhalin memcached客户端

Memcached Java示例 (Memcached Java Example)

I have used Greg Whalin Memcached client and found it easy to understand and use. It provides all the basic functionalities with thread pooling. Below is the maven dependency to include this into your project.

我使用了Greg Whalin Memcached客户端,发现它易于理解和使用。 它提供了线程池的所有基本功能。 下面是Maven依赖项,将其包括在您的项目中。

<dependency>
    <groupId>com.whalin</groupId>
    <artifactId>Memcached-Java-Client</artifactId>
    <version>3.0.2</version>
</dependency>

To help you get started quickly, I am providing a sample program to showcase the usage of basic functions that can be performed with the Memcached server.

为了帮助您快速入门,我提供了一个示例程序来展示可以使用Memcached服务器执行的基本功能。

package com.journaldev.memcached.test;

import java.util.HashMap;
import com.whalin.MemCached.MemCachedClient;
import com.whalin.MemCached.SockIOPool;

public class MemcachedJavaClient {

	/**
	 * MemcachedJavaClient program to show the usage of different functions
	 * that can be performed on Memcached server with Java Client
	 * @param args
	 */
	public static void main(String[] args) {
		//initialize the SockIOPool that maintains the Memcached Server Connection Pool
		String[] servers = {"localhost:11111"};
		SockIOPool pool = SockIOPool.getInstance("Test1");
		pool.setServers( servers );
		pool.setFailover( true );
		pool.setInitConn( 10 );
		pool.setMinConn( 5 );
		pool.setMaxConn( 250 );
		pool.setMaintSleep( 30 );
		pool.setNagle( false );
		pool.setSocketTO( 3000 );
		pool.setAliveCheck( true );
		pool.initialize();
		//Get the Memcached Client from SockIOPool named Test1
		MemCachedClient mcc = new MemCachedClient("Test1");
		//add some value in cache
		System.out.println("add status: "+mcc.add("1", "Original"));
		//Get value from cache
		System.out.println("Get from Cache: "+mcc.get("1"));

		System.out.println("add status: "+mcc.add("1", "Modified"));
		System.out.println("Get from Cache: "+mcc.get("1"));

		//use set function to add/update value, use replace to update and not add
		System.out.println("set status: "+mcc.set("1","Modified"));
		System.out.println("Get from Cache after set: "+mcc.get("1"));

		//use delete function to delete the key from cache
		System.out.println("remove status: "+mcc.delete("1"));
		System.out.println("Get from Cache after delete: "+mcc.get("1"));

		//Use getMulti function to retrieve multiple keys values in one function
		// Its helpful in reducing network calls to 1
		mcc.set("2", "2");
		mcc.set("3", "3");
		mcc.set("4", "4");
		mcc.set("5", "5");
		String [] keys = {"1", "2","3","INVALID","5"};
		HashMap<String,Object> hm = (HashMap<String, Object>) mcc.getMulti(keys);

		for(String key : hm.keySet()){
			System.out.println("KEY: "+key+" VALUE: "+hm.get(key));
		}
	}

}

The output of the above Memcache java client program is:

上面的Memcache Java客户端程序的输出为:

add status: true
Get from Cache: Original
add status: false
Get from Cache: Original
set status: true
Get from Cache after set: Modified
remove status: true
Get from Cache after delete: null
KEY: 3 VALUE: 3
KEY: 2 VALUE: 2
KEY: 1 VALUE: null
KEY: INVALID VALUE: null
KEY: 5 VALUE: 5

If you want to connect to multiple Memcached servers then you will have to create multiple SockIOPool instances and then use the same name while getting the MemcacheClient instance.

如果要连接到多个Memcached服务器,则必须创建多个SockIOPool实例,然后在获取MemcacheClient实例时使用相同的名称。

翻译自: https://www.journaldev.com/24/memcached-java-client-example

memcached客户端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Memcached 客户端中,通常有两个超时相关的设置:连接超时和操作超时。 1. 连接超时:指当客户端尝试连接 Memcached 服务器时,如果在规定的时间内无法建立连接,则会超时。可以通过设置客户端的连接超时时间来调整这个设置。具体方法取决于你使用的客户端库,例如在 PHP 中,可以使用 `Memcached::setOption()` 方法设置 `OPT_CONNECT_TIMEOUT` 选项来调整连接超时时间。 2. 操作超时:指当客户端发送一个请求给 Memcached 服务器时,如果在规定的时间内没有收到响应,则会超时。可以通过设置客户端的操作超时时间来调整这个设置。同样,具体方法取决于你使用的客户端库,例如在 Python 中,可以使用 `memcache.Client()` 的 `socket_timeout` 参数设置操作超时时间。 需要注意的是,超时时间设置过短可能会导致误判或性能问题,设置过长则可能会增加系统响应时间。因此,需要根据具体的场景和系统负载情况来进行调整。 ### 回答2: 要调整 Memcached 客户端的超时设置,可以按照以下步骤进行操作: 1. 确定需要调整超时设置的客户端程序和操作系统。 2. 获取客户端程序的配置文件或代码文件。 3. 打开配置文件或代码文件,查找超时相关的配置项或代码片段。 4. 根据需要,调整超时时间的数值。可以增加或减少超时时间,以适应不同的网络环境和业务需求。 5. 保存配置文件或代码文件,并重新启动或重新编译客户端程序,使新的超时设置生效。 需要注意的是,不同的客户端程序可能有不同的超时设置方式,以下是一些常见的调整超时设置的方法: - 如果使用的是一些开源的 Memcached 客户端库,可以查阅它们的文档,寻找相关的超时设置选项,并按照文档的指导进行调整。 - 如果使用的是自己编写的客户端程序,可以在代码中找到与超时设置相关的部分,根据需要进行调整。例如,可以修改连接超时、读取超时和写入超时等参数。 - 如果使用的是配套的命令行工具(如memcached-tool),可以在命令行中指定超时参数。例如,使用"-t"参数指定超时时间为X秒。 总之,根据具体的情况,通过修改配置文件、调整代码或加入参数等方式,可以方便地调整 Memcached 客户端的超时设置,以满足实际需求。 ### 回答3: 要调整 Memcached 客户端的超时设置,可以通过以下步骤进行操作: 1. 首先,确定你所使用的 Memcached 客户端库。不同的编程语言可能有不同的 Memcached 客户端库,如 php-memcached、python-memcached 等。 2. 查阅所使用的 Memcached 客户端库的文档或官方网站,了解相关的超时设置参数和默认值。通常,超时设置参数的名称可能会有所不同,例如 timeout、connect_timeout、socket_timeout 等。 3. 根据文档或官方网站的指引,找到设置超时的方法或函数。这些方法或函数通常会在创建 Memcached 客户端对象或连接到 Memcached 服务器时被调用。调用方法可能会接受一个超时值作为参数,单位可以是秒或毫秒。 4. 根据自己的需求,设置一个适当的超时值。超时值应该与你的应用逻辑和网络环境相匹配。通常情况下,可以将超时值设置为几秒钟或几毫秒,以确保在超时期限内获得响应。 5. 在代码中修改相应的设置,并重新编译或重启应用程序,以使设置生效。 6. 测试代码的修改是否生效。可以使用一些测试脚本或工具来模拟访问 Memcached 服务器并检查超时设置是否符合预期。 请注意,不同的 Memcached 客户端库和版本可能会有不同的超时设置方式和参数名称。因此,在进行设置时,应仔细阅读和理解所使用的客户端库的文档,并根据实际情况进行相应的调整和测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值