睿阳知识库 睿阳知识库
首页
  • npm库配置
  • PC端

    • npm常用命令
    • vue问题记录
    • SEO基础知识及优化
    • 禁止别人调试我的前端页面代码
  • 移动端

    • 小程序
    • Risun.js使用说明
  • Java

    • Maven库配置
    • RSP开发框架
    • RSP框架插件
  • .NET

    • Nuget库配置
  • Python

    • Pypi库配置
  • 常见问题

    • Word转Pdf字体错乱
    • 使用Jacob进行Word导出PDF
  • 自动部署
  • 前端带路径
  • Linux

    • 应用部署
  • Windows

    • 应用部署
  • 视频监控
  • MySQL系列~
  • 应用高可用
  • 静态代码扫描
  • OpenSSH版本升级
  • 区块链~
  • 软件过程文档目录
  • 著作权申请须知及申报示例
  • 项目申报技巧
  • 项目竣工资料清单
  • 科技项目申报流程及注意事项
  • 初级职称申报
  • 产品需求文档基础知识
  • 产品经理需了解的技术知识
  • 墨刀原型设计指南
  • 文档规范
  • 文档规范
  • 投标工作总结(一)
  • 科技项目申报心得体会
  • 数字孪生
  • AI
  • RSP基础平台
  • RMCloud
  • 区块链
  • 网络态势感知
  • 国产化
  • 数据湖
  • 贡献度
  • 文档编写说明
  • Markdown教程
工作链接
首页
  • npm库配置
  • PC端

    • npm常用命令
    • vue问题记录
    • SEO基础知识及优化
    • 禁止别人调试我的前端页面代码
  • 移动端

    • 小程序
    • Risun.js使用说明
  • Java

    • Maven库配置
    • RSP开发框架
    • RSP框架插件
  • .NET

    • Nuget库配置
  • Python

    • Pypi库配置
  • 常见问题

    • Word转Pdf字体错乱
    • 使用Jacob进行Word导出PDF
  • 自动部署
  • 前端带路径
  • Linux

    • 应用部署
  • Windows

    • 应用部署
  • 视频监控
  • MySQL系列~
  • 应用高可用
  • 静态代码扫描
  • OpenSSH版本升级
  • 区块链~
  • 软件过程文档目录
  • 著作权申请须知及申报示例
  • 项目申报技巧
  • 项目竣工资料清单
  • 科技项目申报流程及注意事项
  • 初级职称申报
  • 产品需求文档基础知识
  • 产品经理需了解的技术知识
  • 墨刀原型设计指南
  • 文档规范
  • 文档规范
  • 投标工作总结(一)
  • 科技项目申报心得体会
  • 数字孪生
  • AI
  • RSP基础平台
  • RMCloud
  • 区块链
  • 网络态势感知
  • 国产化
  • 数据湖
  • 贡献度
  • 文档编写说明
  • Markdown教程
工作链接
  • Java

    • Maven库配置
    • RSP开发框架
    • RSP框架插件
    • 框架插件

      • 工作流
      • Word、PDF、Excel增强
      • 消息提醒
      • 资源打包成ZIP下载
      • 区分多个项目Redis缓存
        • 一. 后端
          • 1. 修改CacheConstants.java
          • 2. 新增RedisKeySerializer.java
          • 3. 修改RedisConfig.java
          • 4. 修改CacheController.java
          • 5. 修改SysCache.java
        • 二. 前端
        • 三. 使用方式没有变化
      • 留言评论
      • 内部消息队列
      • 文件预览增强
      • 在线Excel报表设计
      • 自定义高级查询
  • .NET

  • Python

  • 常见问题

  • 后端
  • Java
  • 框架插件
孙超
2022-12-14
目录

区分多个项目Redis缓存

框架对Redis缓存功能进行了增强,可区分部署多个项目(连接同一个Redis),主版本RSP框架已包含此功能,老版本框架若要使用,请进行如下操作,集成功能:

# 一. 后端

# 1. 修改CacheConstants.java

代码位于[项目]-common模块,com.risun.common.constant包下,加入代码

// project 替换为项目的名称,例如:npc:
public static final String SYS_KEY = "project:";

# 2. 新增RedisKeySerializer.java

在[项目]-framework模块,com.risun.framework.config包下,创建RedisKeySerializer.java

package com.risun.framework.config;

import java.nio.charset.Charset;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.SerializationException;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
import com.risun.common.constant.CacheConstants;

@Component
public class RedisKeySerializer implements RedisSerializer<String> {

    private final Charset charset;

    public RedisKeySerializer() {
        this(Charset.forName("UTF8"));
    }

    public RedisKeySerializer(Charset charset) {
        Assert.notNull(charset, "字符集不允许为NULL");
        this.charset = charset;
    }

    @Override
    public byte[] serialize(String string) throws SerializationException {
        return new StringBuilder(CacheConstants.SYS_KEY).append(string).toString().getBytes(charset);
    }

    @Override
    public String deserialize(byte[] bytes) throws SerializationException {
        return (bytes == null ? null : new String(bytes, charset));
    }
}

# 3. 修改RedisConfig.java

代码位于[项目]-framework模块,com.risun.framework.config包下,进行如下修改

-   public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory)
+   public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory, RedisKeySerializer redisKeySerializer)

-   template.setKeySerializer(new StringRedisSerializer());
+   template.setKeySerializer(redisKeySerializer);

-   template.setHashKeySerializer(new StringRedisSerializer());
+   template.setHashKeySerializer(redisKeySerializer);

# 4. 修改CacheController.java

代码位于[项目]-admin模块,com.risun.web.controller.monitor包下,进行如下修改

-   CACHES.add(new SysCache(CacheConstants.LOGIN_TOKEN_KEY, "用户信息"));
-   CACHES.add(new SysCache(CacheConstants.SYS_CONFIG_KEY, "配置信息"));
-   CACHES.add(new SysCache(CacheConstants.SYS_DICT_KEY, "数据字典"));
-   CACHES.add(new SysCache(CacheConstants.CAPTCHA_CODE_KEY, "验证码"));
-   CACHES.add(new SysCache(CacheConstants.REPEAT_SUBMIT_KEY, "防重提交"));
-   CACHES.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "限流处理"));
-   CACHES.add(new SysCache(CacheConstants.PWD_ERR_CNT_KEY, "密码错误次数"));

+   CACHES.add(new SysCache(CacheConstants.SYS_KEY + CacheConstants.LOGIN_TOKEN_KEY, "用户信息"));
+   CACHES.add(new SysCache(CacheConstants.SYS_KEY + CacheConstants.SYS_CONFIG_KEY, "配置信息"));
+   CACHES.add(new SysCache(CacheConstants.SYS_KEY + CacheConstants.SYS_DICT_KEY, "数据字典"));
+   CACHES.add(new SysCache(CacheConstants.SYS_KEY + CacheConstants.CAPTCHA_CODE_KEY, "验证码"));
+   CACHES.add(new SysCache(CacheConstants.SYS_KEY + CacheConstants.REPEAT_SUBMIT_KEY, "防重提交"));
+   CACHES.add(new SysCache(CacheConstants.SYS_KEY + CacheConstants.RATE_LIMIT_KEY, "限流处理"));
+   CACHES.add(new SysCache(CacheConstants.SYS_KEY + CacheConstants.PWD_ERR_CNT_KEY, "密码错误次数"));

# 5. 修改SysCache.java

代码位于[项目]-system模块,com.risun.system.domain包下,进行如下修改

public SysCache(String cacheName, String cacheKey, String cacheValue) {
-   this.cacheName = StringUtils.replace(cacheName, ":", "");
+   this.cacheName = cacheName.split(":")[1];
    ...
}

# 二. 前端

修改[项目]-ui/src/views/monitor/cache/list.vue,修改内容如下:

// 修改 nameFormatter(row)  方法
// 将 return row.cacheName.replace(":", "");
// 修改为
return row.cacheName.split(":")[1];

# 三. 使用方式没有变化

资源打包成ZIP下载
留言评论

← 资源打包成ZIP下载 留言评论→

最近更新
01
vue问题记录
10-11
02
RSP进度
10-09
03
贡献度
09-28
更多文章>
Copyright © 2014-2025 甘肃睿阳科技有限公司 陇ICP备15001783-1号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式