一、环境准备

  1. Redis 安装


  2.配置 Redis 远程访问


二、AEM 端配置

  1.添加 Redis 客户端依赖

  在 AEM 项目的pom.xml中添加:

<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();
}
}
}

三、缓存实现示例

  1. 创建 Redis 缓存服务

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 配置

dispatcher.any中添加 Redis 缓存规则:
/vanityurl {
/docroot "/content"
/handler "/libs/granite/dispatcher/content/vanity"
/invalidate {
/0001 { /type "path" /glob "/content/**" }
}
/cache {
/docroot "/content"
/rules {
/0001 { /type "allow" /glob "*" }
}
/headers {
/0001 { /type "allow" /name "Content-Type" }
}
/invalidate {
/0001 { /type "path" /glob "/content/**" }
}
/redis {
/host "redis-server-ip"
/port 6379
/password "your_redis_password"
/timeout 5000
}
}
}

五、验证集成

  1. Redis CLI 测试

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");
}
}

六、生产环境建议

  1. 安全加固
    • 禁用 Redis 默认端口 (6379)
    • 配置防火墙限制访问
    • 启用 TLS 加密通信
    • 定期备份 Redis 数据
  2. 性能优化
    • 配置 Redis 内存策略
    • # 在redis.conf中添加
      maxmemory 256mb
      maxmemory-policy allkeys-lru
    • 使用 Redis 集群提高可用性

    3.监控与告警

    ○ 集成 Prometheus+Grafana 监控 Redis 性能

    ○ 设置内存使用率、连接数等告警阈值

  通过以上步骤,你可以成功将 AEM 6.5 与最新版 Redis 集成,实现高性能缓存机制。

问题:

一、修改绑定地址这一步,需要端口号吗?

在 Redis 配置中修改绑定地址(bind参数)时,不需要指定端口号。bind参数仅用于配置 Redis 服务器监听的 IP 地址,端口号由单独的port参数控制(默认是 6379)。

详细说明:
1.bind 参数作用
该参数用于限制 Redis 服务器只接受来自指定 IP 地址的连接请求。例如:

# 仅监听本地回环地址(默认值)
bind 127.0.0.1 # 监听所有可用网络接口(不推荐生产环境)
bind 0.0.0.0 # 监听特定IP地址(推荐生产环境)
bind 192.168.1.100

2。port 参数作用
该参数用于指定 Redis 服务器监听的端口号,默认是 6379。例如:

port 6379

3.配置示例
如果需要 Redis 监听特定 IP 和端口,应分别设置这两个参数:

# 监听特定IP地址
bind 192.168.1.100 # 使用非标准端口
port 6380

注意事项:
安全风险:bind 0.0.0.0会使 Redis 暴露在公网,存在安全风险,生产环境建议绑定具体内网 IP。
防火墙配置:如果修改了默认端口,需确保防火墙开放相应端口。
重启生效:修改配置后需重启 Redis 服务:

sudo systemctl restart redis-server

验证配置:
可以通过以下命令检查 Redis 监听的 IP 和端口:

# 查看Redis进程监听情况
sudo netstat -tulpn | grep redis # 输出示例(显示监听127.0.0.1:6379)
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1234/redis-server 1

因此,在修改 Redis 绑定地址时,只需指定 IP 地址,无需包含端口号。

AEM6.5集成Redis详细步骤(附代码)的更多相关文章

  1. JDBC连接sql server数据库的详细步骤和代码

    JDBC连接sql server数据库的详细步骤和代码 JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Ja ...

  2. liunx系统安装Redis详细步骤

    liunx系统安装Redis详细步骤 官网下载Redis安装包 使用工具将redis安装包拖入liunx系统 创建Redis存放目录 mkdir /usr/local/redis 解压到redis存放 ...

  3. SpringBoot整合Elasticsearch详细步骤以及代码示例(附源码)

    准备工作 环境准备 JAVA版本 java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121 ...

  4. JDBC连接sql server数据库的详细步骤和代码 转

    JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序(只做一次): 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.C ...

  5. Python之简单的SMTP发送邮件详细教程附代码

      简介 Python发送邮件的教程本人在网站搜索的时候搜索出来了一大堆,但是都是说了一大堆原理然后就推出了实现代码,我测试用给出的代码进行发送邮件时都不成功,后面找了很久才找到原因,这都是没有一个详 ...

  6. mac下安装redis详细步骤

    Linux下安装redis也可以参照下面的步骤哦!!!! 1.到官网上下载redis,我下载的版本是redis-3.2.5.tar 官网地址:http://redis.io/ 2.将下载下来的tar. ...

  7. 阿里云CentOS 7.3安装Redis详细步骤

    ############  准备  ############### 从Redis官网下载Linux redis3.2.6版本,我下载的redis-3.2.6.tar.gz(目前最新稳定版),下载到/u ...

  8. RedHat安装DB2详细步骤(附卸载、备份恢复步骤)

    1.创建用户组和用户 说明: 步骤1 以root用户登录需要安装DB2的服务器. 步骤2 创建用户组和用户. # su -root # groupdel db2grp # groupdel db2fg ...

  9. 在linux通过源码编译安装redis详细步骤

    1.下载源码包 [root@localhost opt]# wget http://download.redis.io/releases/redis-4.0.10.tar.gz 2.解压缩redis ...

  10. linux安装redis详细步骤(系统centos 6.4 )

    1.安装redis 进入安装目录下载: cd  /usr/local/redis wget http://download.redis.io/releases/redis-3.0.7.tar.gz 解 ...

随机推荐

  1. IvorySQL 4.0 发布:全面支持 PostgreSQL 17

    2024 年 12 月 24 日,IvorySQL 4.0 发布了! 这是 2024 年以来发布的最新版本,相较于上个版本,有了较大的变化. 该版本有多项增强:全面支持 PostgreSQL 17,新 ...

  2. Linux 实现OpenSSL 服务器端客户端通信

    1.OpenSSL安装 详情参考博文:https://blog.csdn.net/qq_39521181/article/details/96457673 2.SSL 在学习openssl编程之前,先 ...

  3. Linux reboot全过程

    一.版本说明嵌入式Linux 下面的reboot命令看似简单,但出问题时定位起来发现别有洞天.下面就按在shell下执行reboot命令之后程序的执行过程进行解析.Busybox:1.23.2     ...

  4. Gin CORS

    Go 语言手搓一个简单的跨域还是比较容易的, 但自己手搓一批通用代码总归还是麻烦了点. 如果使用 Gin 的话, 有现成的跨域中间件可以用. github.com/gin-contrib/cors 注 ...

  5. Ubuntu下Ibus和fcitx的奇葩问题

    最近装了个Ubuntu,捉鸡的输入法令人哀伤. 于是乎,卸载了自带Ibus和fcitx出现各种问题,留爪. 首先,卸载了Ibus,会出现的问题如下: 注销/重启系统有问题 系统设置菜单选项缺失 -&g ...

  6. sulime设置备份

    { "color_scheme": "Packages/Color Scheme - Default/Monokai.sublime-color-scheme" ...

  7. 记一个.NET AOT交叉编译时的坑

    记一个.NET AOT交叉编译时的坑 背景: 使用.NET9开发的Avalonia项目需要部署到Linux-arm64 踩坑: 根据官方AOT交叉编译文档配置后执行打包 dotnet publish ...

  8. Linux下安装node及npm

    Linux下安装node 1.解压 $ tar zxf node-v8.9.0-linux-x64.tar.gz 2.移动到指定目录 $ mv node-v8.9.0-linux-x64 /usr/l ...

  9. C#之值类型与引用类型--out参数--ref参数-"=="、Equals和ReferenceEquals之间的区别

    一.值类型和引用类型 1.值类型 (1)值类型的大小是固定的 (2)值类型都派生自ValueType (3)值类型不能继承,只能实现接口 2.值类型:int.char.double.float.lon ...

  10. 学习nodejs的一点笔记

    >>1.模块:一个文件即为一个模块 1)global可以声明全局变量 (跨模块) 例如:global a = 100; console.log(global.a);   //输出100 2 ...