AEM 6.5 集成 Redis 详细步骤(附代码)
一、环境准备

# Ubuntu/Debian系统 sudo apt update sudo apt install redis-server # 启动Redis sudo systemctl start redis-server # 验证运行状态 sudo systemctl status redis-server
2.配置 Redis 远程访问

# 编辑配置文件 sudo nano /etc/redis/redis.conf # 找到bind 127.0.0.1 ::1并修改为(生产环境建议设置具体IP) bind 0.0.0.0 # 启用密码认证(推荐) requirepass your_redis_password # 重启Redis sudo systemctl restart redis-server
二、AEM 端配置
1.添加 Redis 客户端依赖
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>4.4.3</version> <!-- 最新稳定版 --> </dependency>
2.创建 Redis 连接工厂
import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class RedisConnectionFactory { private static JedisPool jedisPool; static { JedisPoolConfig poolConfig = new JedisPoolConfig(); poolConfig.setMaxTotal(100); poolConfig.setMaxIdle(10); poolConfig.setMinIdle(5); poolConfig.setTestOnBorrow(true); poolConfig.setTestOnReturn(true); // 替换为实际的Redis服务器信息 jedisPool = new JedisPool( poolConfig, "redis-server-ip", 6379, 5000, "your_redis_password" ); } public static Jedis getConnection() { return jedisPool.getResource(); } public static void closeConnection(Jedis jedis) { if (jedis != null) { jedis.close(); } } }
三、缓存实现示例
import org.osgi.service.component.annotations.Component; import redis.clients.jedis.Jedis; @Component(service = CacheService.class) public class RedisCacheServiceImpl implements CacheService { @Override public void put(String key, String value) { Jedis jedis = null; try { jedis = RedisConnectionFactory.getConnection(); jedis.set(key, value); } catch (Exception e) { // 记录异常日志 e.printStackTrace(); } finally { RedisConnectionFactory.closeConnection(jedis); } } @Override public String get(String key) { Jedis jedis = null; try { jedis = RedisConnectionFactory.getConnection(); return jedis.get(key); } catch (Exception e) { // 记录异常日志 e.printStackTrace(); return null; } finally { RedisConnectionFactory.closeConnection(jedis); } } @Override public void delete(String key) { Jedis jedis = null; try { jedis = RedisConnectionFactory.getConnection(); jedis.del(key); } catch (Exception e) { // 记录异常日志 e.printStackTrace(); } finally { RedisConnectionFactory.closeConnection(jedis); } } }
2.缓存服务接口
public interface CacheService { void put(String key, String value); String get(String key); void delete(String key); }
四、AEM Dispatcher 配置
redis-cli -h redis-server-ip -a your_redis_password ping # 应返回PONG
2.AEM 代码测试
public class CacheTest { public static void main(String[] args) { CacheService cacheService = new RedisCacheServiceImpl(); // 存入缓存 cacheService.put("testKey", "Hello Redis!"); // 获取缓存 String value = cacheService.get("testKey"); System.out.println("缓存值: " + value); // 删除缓存 cacheService.delete("testKey"); } }
六、生产环境建议