Java连接Redis

这篇博客介绍了如何使用Java连接Redis,分别通过Jedis和Lettuce两个库进行操作。首先讲解了Jedis的使用步骤,包括创建Maven项目、导入依赖、配置Redis服务器和Java端连接,以及简单的数据操作演示。接着提到了Lettuce,指出其依赖较多,尤其是Netty的包,并进行了简单操作展示。最后,建议读者查阅更多关于Lettuce的资料以获取深入理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Jedis

1. 新建一个maven项目
(略…)
2. 导入Jedis的依赖

可以去maven仓库选择自己需要的版本.

https://mvnrepository.com/artifact/redis.clients/jedis
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.2.0</version>
</dependency>

在这里插入图片描述
导入依赖后,发现,Jedis3.2依赖

commons-pool2-2.6.2.jar
slf4j-api-1.7.25.jar

所以,如果没有使用maven项目的话,那么手动将这两个jar引入也可以.
3. 修改redis配置文件

修改bind为指定的ip或所有
关闭保护模式

1. bind 0.0.0.0
2. protected-mode no

4. 重启(启动)redis-server

shutdown
exit
redis-server /path/to/conf-file/redis*.conf

5. 配置java端连接

package edu.shuu.redis;

import redis.clients.jedis.Jedis;

public class RedisDemo {
    public static void main(String[] args) {
    	// new Jedis(IP, PORT)
        Jedis jedis = new Jedis("master-server", 6379);
        System.out.println(jedis.ping());
    }
}

连接ok!

在这里插入图片描述
6. 简单演示

目前还没有任何数据
在这里插入图片描述
注意,这里有个坑,如果要使用 multi和exec的话,不能使用Jedis对象进行写操作,而是要使用Transaction对象.

package edu.shuu.redis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;

public class RedisDemo {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("master-server", 6379);
        Transaction transaction = jedis.multi();
        transaction.set("k1", "v1");
        transaction.hset("hash", "f1", "v1");
        transaction.lpush("list", "v1", "v2", "v3", "v4", "v5");
        transaction.sadd("set", "v1", "v2", "v3");
        transaction.zadd("zset", 60, "v1");
        transaction.exec();
    }
}

发现已经成功写入到redis了,具体API就不演示了.

在这里插入图片描述

2. lettuce

1. 导入依赖

<dependency>
    <groupId>io.lettuce</groupId>
    <artifactId>lettuce-core</artifactId>
    <version>5.2.2.RELEASE</version>
</dependency>

可以发现这次的依赖比较多,而且很多是netty的包.
在这里插入图片描述
2. 简单演示

package edu.shuu.redis;

import io.lettuce.core.RedisClient;
import io.lettuce.core.RedisURI;
import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.api.sync.RedisCommands;

import java.time.Duration;
import java.time.temporal.ChronoUnit;

public class RedisDemo {
    public static void main(String[] args) {
        RedisURI uri = RedisURI.builder()
                .withHost("master-server")
                .withPort(6379)
                .withTimeout(Duration.of(10, ChronoUnit.SECONDS))
                .build();
        RedisClient redisClient = RedisClient.create(uri);
        StatefulRedisConnection<String, String> connect = redisClient.connect();
        RedisCommands<String, String> sync = connect.sync();
        sync.multi();
        sync.set("k1", "v1");
        sync.hset("hash", "f1", "v1");
        sync.lpush("list", "v1", "v2", "v3", "v4", "v5");
        sync.sadd("set", "v1", "v2", "v3");
        sync.zadd("zset", 60, "v1");
        sync.exec();
        connect.close();
        redisClient.shutdown();
    }

}

在这里插入图片描述

3. More About Lettuce

更多有关Lettuce的信息,推荐大家去看下面的这篇文章.

https://cloud.tencent.com/developer/article/1526886
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值