How to Use Redis Cache in Java: Simple Guide with Example
To use
Redis cache in Java, add a Redis client library like Jedis to your project, connect to the Redis server, and use commands like set and get to store and retrieve cached data. This lets your Java app quickly access frequently used data from Redis memory cache.Syntax
Using Redis cache in Java involves these steps:
- Import Redis client library: Use a library like
Jedisto communicate with Redis. - Create a connection: Connect to the Redis server using host and port.
- Set cache data: Use
set(key, value)to store data. - Get cache data: Use
get(key)to retrieve data. - Close connection: Always close the connection after use.
java
import redis.clients.jedis.Jedis; // Connect to Redis server Jedis jedis = new Jedis("localhost", 6379); // Set a key-value pair in cache jedis.set("key", "value"); // Get value by key String value = jedis.get("key"); // Close connection jedis.close();
Example
This example shows how to connect to Redis, store a value, retrieve it, and print it in Java using Jedis.
java
import redis.clients.jedis.Jedis; public class RedisCacheExample { public static void main(String[] args) { // Connect to local Redis server try (Jedis jedis = new Jedis("localhost", 6379)) { // Store data in Redis cache jedis.set("user:1001", "Alice"); // Retrieve data from Redis cache String cachedUser = jedis.get("user:1001"); // Print the cached value System.out.println("Cached user: " + cachedUser); } catch (Exception e) { System.out.println("Error connecting to Redis: " + e.getMessage()); } } }
Output
Cached user: Alice
Common Pitfalls
Common mistakes when using Redis cache in Java include:
- Not closing the Redis connection, which can cause resource leaks.
- Using wrong host or port, leading to connection failures.
- Storing large objects without serialization, causing errors.
- Not handling exceptions when Redis is down.
Always use try-with-resources or finally block to close connections and handle exceptions gracefully.
java
/* Wrong way: Not closing connection */ Jedis jedis = new Jedis("localhost", 6379); jedis.set("key", "value"); // Missing jedis.close(); /* Right way: Using try-with-resources */ try (Jedis jedis = new Jedis("localhost", 6379)) { jedis.set("key", "value"); }
Quick Reference
Here is a quick cheat sheet for common Redis cache commands in Java using Jedis:
| Command | Description | Java Jedis Method |
|---|---|---|
| SET key value | Store a value by key | jedis.set(key, value) |
| GET key | Retrieve value by key | jedis.get(key) |
| DEL key | Delete a key | jedis.del(key) |
| EXPIRE key seconds | Set expiration time | jedis.expire(key, seconds) |
| TTL key | Get time to live | jedis.ttl(key) |
Key Takeaways
Use a Redis client like Jedis to connect and interact with Redis in Java.
Always close Redis connections to avoid resource leaks, preferably with try-with-resources.
Use simple commands like set and get to cache and retrieve data efficiently.
Handle exceptions to manage Redis server downtime gracefully.
Use expiration commands to keep cache data fresh and avoid stale data.