java如何使用redis
使用Java操作Redis的基本方法
添加依赖
在Maven项目中引入Jedis或Lettuce客户端依赖:
<!-- 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>
基础连接与操作(Jedis示例)
// 创建连接
Jedis jedis = new Jedis("localhost", 6379);
// 字符串操作
jedis.set("key", "value");
String value = jedis.get("key");
// 哈希操作
jedis.hset("user:1", "name", "Alice");
Map<String, String> user = jedis.hgetAll("user:1");
// 关闭连接
jedis.close();
使用连接池(JedisPool)
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(10);
try (JedisPool pool = new JedisPool(poolConfig, "localhost", 6379);
Jedis jedis = pool.getResource()) {
jedis.sadd("tags", "Java", "Redis");
Set<String> tags = jedis.smembers("tags");
}
Lettuce客户端示例
RedisClient client = RedisClient.create("redis://localhost:6379");
StatefulRedisConnection<String, String> connection = client.connect();
RedisCommands<String, String> commands = connection.sync();
commands.set("counter", "100");
String counter = commands.get("counter");
connection.close();
client.shutdown();
高级功能实现
使用Redis事务:

try (Jedis jedis = new Jedis("localhost")) {
Transaction tx = jedis.multi();
tx.set("a", "1");
tx.incr("b");
tx.exec();
}
发布/订阅模式:

Jedis jedis = new Jedis("localhost");
jedis.subscribe(new JedisPubSub() {
@Override
public void onMessage(String channel, String message) {
System.out.println("Received: " + message);
}
}, "channel");
Spring Data Redis整合
配置Spring Boot项目:
spring:
redis:
host: localhost
port: 6379
使用RedisTemplate:
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void saveUser(User user) {
redisTemplate.opsForValue().set("user:" + user.getId(), user);
}
性能优化建议
- 使用连接池管理连接资源
- 批量操作使用pipeline减少网络往返
- 合理设置序列化方式(推荐Jackson或Kryo)
- 对热点数据考虑本地缓存结合Redis的多级缓存策略






