当前位置:首页 > Java

java如何使用redis

2026-04-08 20:44:15Java

Redis在Java中的基本使用

安装Jedis或Lettuce客户端依赖(以Maven为例):

<!-- Jedis -->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>4.3.1</version>
</dependency>

<!-- Lettuce -->
<dependency>
    <groupId>io.lettuce</groupId>
    <artifactId>lettuce-core</artifactId>
    <version>6.2.3.RELEASE</version>
</dependency>

连接Redis服务器

Jedis连接示例:

Jedis jedis = new Jedis("localhost", 6379);
jedis.auth("password"); // 如果需要认证
System.out.println("连接成功:" + jedis.ping());
jedis.close();

Lettuce连接示例:

RedisClient client = RedisClient.create("redis://password@localhost:6379");
StatefulRedisConnection<String, String> connection = client.connect();
RedisCommands<String, String> commands = connection.sync();
System.out.println("连接成功:" + commands.ping());
connection.close();
client.shutdown();

基本数据操作

字符串操作:

jedis.set("key", "value");
String value = jedis.get("key");
jedis.expire("key", 60); // 设置60秒过期

哈希操作:

jedis.hset("user:1", "name", "John");
jedis.hset("user:1", "age", "30");
Map<String, String> user = jedis.hgetAll("user:1");

列表操作:

java如何使用redis

jedis.lpush("list", "item1");
jedis.lpush("list", "item2");
List<String> items = jedis.lrange("list", 0, -1);

使用连接池(Jedis)

配置连接池:

JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(128);
poolConfig.setMaxIdle(64);
poolConfig.setMinIdle(16);

JedisPool jedisPool = new JedisPool(poolConfig, "localhost", 6379);
try (Jedis jedis = jedisPool.getResource()) {
    // 执行操作
}
jedisPool.close();

Spring Data Redis集成

配置Spring Boot项目:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

application.yml配置:

spring:
  redis:
    host: localhost
    port: 6379
    password: yourpassword

使用RedisTemplate:

java如何使用redis

@Autowired
private RedisTemplate<String, Object> redisTemplate;

public void saveData(String key, Object value) {
    redisTemplate.opsForValue().set(key, value);
}

public Object getData(String key) {
    return redisTemplate.opsForValue().get(key);
}

发布/订阅模式

发布消息:

jedis.publish("channel", "message");

订阅消息:

JedisPubSub pubSub = new JedisPubSub() {
    @Override
    public void onMessage(String channel, String message) {
        System.out.println("收到消息:" + message);
    }
};
jedis.subscribe(pubSub, "channel");

事务处理

使用MULTI/EXEC:

Transaction t = jedis.multi();
t.set("a", "1");
t.set("b", "2");
t.exec();

Lua脚本执行

执行Lua脚本:

String script = "return redis.call('get', KEYS[1])";
Object result = jedis.eval(script, 1, "key");

注意事项

生产环境建议使用连接池管理连接,避免频繁创建销毁连接。对于高并发场景,Lettuce的异步特性通常比Jedis表现更好。Spring项目推荐使用Spring Data Redis简化操作,它同时支持Jedis和Lettuce实现。

分享给朋友:

相关文章

如何自学java

如何自学java

选择合适的学习资源 从官方文档开始,Oracle提供的Java官方教程(Java Tutorials)是权威且免费的学习资料。在线平台如Codecademy、Coursera或Udemy提供互动式课程…

java如何连接数据库

java如何连接数据库

Java连接数据库的方法 Java连接数据库通常使用JDBC(Java Database Connectivity)技术,以下是具体步骤和示例代码。 加载数据库驱动 在连接数据库之前,需要加载对应的…

如何编译java

如何编译java

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证是否安装成功。若未安装,需从Oracl…

java如何运行程序

java如何运行程序

运行Java程序的步骤 安装Java开发工具包(JDK) 确保系统已安装JDK,可通过命令行输入java -version和javac -version验证。若未安装,需从Oracle官网下载并配置环…

hashrouter如何使用react

hashrouter如何使用react

使用 HashRouter 在 React 中的方法 安装 react-router-dom 确保项目中已安装 react-router-dom,若未安装,可通过以下命令安装: npm inst…

如何搭建java开发环境

如何搭建java开发环境

下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK版本。运行安装程序并按照提示完成安装,建议选择默认路径以减少配置复杂度。 配置环境变量 在系统环境变量中添加JAVA_HO…