杰瑞科技汇

java memcached 下载

Memcached 是一个独立的服务器程序(用 C/C++ 编写),而 Java 客户端是一个 Java 库(JAR 包),用于让你的 Java 应用程序能够与 Memcached 服务器进行通信。

java memcached 下载-图1
(图片来源网络,侵删)

您需要做两件事:

  1. 下载并安装 Memcached 服务器。
  2. 下载并集成 Java 客户端库到您的 Java 项目中。

第一步:下载并安装 Memcached 服务器

Java 客户端需要与一个正在运行的 Memcached 服务器对话,您必须先安装它。

下载 Memcached 服务器软件

安装和启动 (以 Linux 为例)

# 1. 解压
tar -zxvf memcached-1.x.x.tar.gz
cd memcached-1.x.x
# 2. 编译和安装 (需要先安装 libevent 库)
# 在 Debian/Ubuntu 上: sudo apt-get install libevent-dev
# 在 CentOS/RHEL 上: sudo yum install libevent-devel
./configure
make
sudo make install
# 3. 启动 Memcached 服务器
# -d: 作为守护进程在后台运行
# -m: 分配给 Memcached 的内存大小,单位是 MB
# -p: 监听的端口,默认是 11211
# -l: 监听的 IP 地址,默认是 0.0.0.0 (所有网络接口)
sudo memcached -d -m 64 -p 11211 -l 127.0.0.1

您的 Memcached 服务器已经在 0.0.1:11211 上运行了。


第二步:下载并集成 Java 客户端库

这是您问题的核心,Java 社区有几个流行的 Memcached 客户端库,最主流和推荐的是 XmemcachedSpyMemcached

java memcached 下载-图2
(图片来源网络,侵删)

推荐方案:Xmemcached

Xmemcached 是目前性能最好、功能最全、维护最活跃的 Java Memcached 客户端之一。

下载方式 (推荐使用 Maven/Gradle)

现代 Java 项目强烈推荐使用构建工具来管理依赖,而不是手动下载 JAR 包。

使用 Maven: 在您的 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>com.googlecode.xmemcached</groupId>
    <artifactId>xmemcached</artifactId>
    <version>2.4.7</version> <!-- 请使用最新版本 -->
</dependency>

使用 Gradle: 在您的 build.gradle 文件中添加以下依赖:

java memcached 下载-图3
(图片来源网络,侵删)
implementation 'com.googlecode.xmemcached:xmemcached:2.4.7' // 请使用最新版本

手动下载 JAR 包 (不推荐)

如果您不使用构建工具,可以从 Maven 中央仓库手动下载。

其他备选方案:SpyMemcached

SpyMemcached 是另一个非常经典和稳定的客户端,由 Couchbase 公司(原 Northscale)维护。

下载方式 (推荐使用 Maven/Gradle)

使用 Maven: 在您的 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>net.spy</groupId>
    <artifactId>spymemcached</artifactId>
    <version>2.12.3</version> <!-- 请使用最新版本 -->
</dependency>

使用 Gradle: 在您的 build.gradle 文件中添加以下依赖:

implementation 'net.spy:spymemcached:2.12.3' // 请使用最新版本

手动下载 JAR 包


第三步:Java 代码示例 (使用 Xmemcached)

添加完依赖后,您就可以在 Java 代码中使用它了。

import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.MemcachedClientBuilder;
import net.rubyeye.xmemcached.XMemcachedClient;
import net.rubyeye.xmemcached.XMemcachedClientBuilder;
import net.rubyeye.xmemcached.auth.AuthInfo;
import net.rubyeye.xmemcached.exception.MemcachedException;
import net.rubyeye.xmemcached.utils.AddrUtil;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.concurrent.TimeoutException;
public class MemcachedExample {
    public static void main(String[] args) {
        // 1. 创建 MemcachedClient 客户端
        // AddrUtil.getAddresses("127.0.0.1:11211") 是一个连接字符串,可以指定多个服务器,用空格隔开
        MemcachedClient memcachedClient = null;
        try {
            memcachedClient = new XMemcachedClient("127.0.0.1", 11211);
            // 2. 存储数据
            // set(key, expiration, value)
            // expiration: 过期时间,0 表示永不过期(以秒为单位)
            System.out.println("Setting key 'hello' with value 'world'...");
            boolean setSuccess = memcachedClient.set("hello", 0, "world");
            System.out.println("Set operation result: " + setSuccess);
            // 3. 获取数据
            System.out.println("Getting value for key 'hello'...");
            String value = memcachedClient.get("hello");
            System.out.println("Got value: " + value);
            // 4. 替换数据
            System.out.println("Replacing key 'hello' with new value 'java'...");
            boolean replaceSuccess = memcachedClient.replace("hello", 0, "java");
            System.out.println("Replace operation result: " + replaceSuccess);
            value = memcachedClient.get("hello");
            System.out.println("Got new value: " + value);
            // 5. 删除数据
            System.out.println("Deleting key 'hello'...");
            boolean deleteSuccess = memcachedClient.delete("hello");
            System.out.println("Delete operation result: " + deleteSuccess);
            value = memcachedClient.get("hello");
            System.out.println("Value after deletion: " + value); // 应该输出 null
            // 6. 使用 CAS (Check-And-Set) 机制
            // 先设置一个值
            memcachedClient.set("cas_key", 0, "initial_value");
            // 获取 CAS 值
            long cas = memcachedClient.gets("cas_key").getCas();
            System.out.println("CAS value for 'cas_key': " + cas);
            // 尝试使用 CAS 值进行更新
            boolean casSuccess = memcachedClient.cas("cas_key", 0, "updated_value", cas);
            System.out.println("CAS update result: " + casSuccess);
        } catch (IOException | MemcachedException | TimeoutException | InterruptedException e) {
            e.printStackTrace();
        } finally {
            // 7. 关闭客户端
            if (memcachedClient != null) {
                try {
                    memcachedClient.shutdown();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
步骤 操作 关键资源/命令
服务器 下载并安装 Memcached 服务器 memcached.org
客户端库 选择一个 Java 客户端库并集成到项目 推荐: Xmemcached on Maven Central
项目集成 使用 Maven/Gradle 添加依赖或在项目中手动添加 JAR Maven: <dependency>...</dependency>
编码 编写 Java 代码连接并操作 Memcached 示例代码见上

建议:对于新项目,强烈推荐使用 Xmemcached,并通过 Maven 或 Gradle 来管理依赖,这是最现代、最便捷、最不容易出错的方式。

分享:
扫描分享到社交APP
上一篇
下一篇