反馈已提交

网络繁忙

Redis数据集

  • 文档创建者:漩涡
  • 历史版本:28
  • 最近更新:Carly 于 2024-01-09
  • 1. 概述

    1.1 版本

     报表服务器版本 插件版本 
    11.0V7.1

    1.2 应用场景

    Redis 缓存数据库作为最为的流行的缓存数据库之一,经常被使用在各种需要高速访问的场景下,偶尔也需要把缓存中的数据取出来做一些简单的查看和分析。但是 Redis 作为 NoSQL数据库,在 FineReport 中没有办法直接使用 JDBC 或者 JNDI 连接访问。

    1.3 功能描述

    Redis 插件使设计器连接 Redis 数据库并取数,且支持哈希表、列表、集合以及有序集合。

    注:该插件仅支持在 设计器建立数据连接,不支持 [平台]数据连接 。 

    2. 插件介绍

    2.1 插件安装

    点击下载插件:Redis数据集

    设计器插件安装方法请参见:设计器插件管理

    服务器安装插件方法请参见:服务器插件管理

    3. 示例

    3.1 新建 Redis 数据连接

    1)点击服务器>定义数据连接,如下图所示:

    25.png

    2)选择 Redis 并输入数据库地址、端口号和密码,如下图所示:

    63.png

    3)配置 Redis 连接的连接池信息,如下图所示:

    6.png

    4)如果当前报表服务器无法直接连接 Redis 服务器,而是需要通过跳板机器连接 Redis 服务器,则需要配置跳板服务器,如下图所示:

    42.png

    注意:一旦配置了跳板服务器,连接池配置即失效,只能使用单个连接。

    3.2 Redis 数据集

    3.2.1 新建 Redis 数据集

    点击+,选择 Redis 数据集,如下图所示:

    1582271216562511.png

    3.2.2 编写 Redis 查询语句

    1)根据参数 $key ,查询 redis 中的值,相当于调用命令:get name ,如下图所示:

    62.png

    注意:左侧的列表是用于展示搜索出来的 key 值的,方便编写 SQL 语句的时候使用列出来的 key 值。

    3.2.3 预览效果

    查询预览结果如下图所示:

    1582274732489461.png

    3.2.4 支持的命令

    操作符  示例代码   说明 
      get get hellokey 获取 hellokey 对应的值
      mget mget foo bar zyx  获取参数列表汇总所有的键对应的值
     hkeys hkeys website 获取指定哈希表中的所有键
     hget hget site redis -
     hmget hmget pet dog cat返回哈希表key中,一个或多个给定域的值,可参考 http://redisdoc.com/hash/hmget.html
      hgetall  hgetall contry  获取哈希表中所有的键值对
      lrange  lrange score 0 -1  获取列表中指定位置的值
     smembers smembers name 获取无序列表中参数值对应的所有元素
     zrange zrange -

    3.3 Redis 程序数据集

    Redis 程序数据集,是使用支持 ES6 的 JavaScript 脚本语句,来从 Redis 查询数据并进行数据转换的数据集,该数据使用非常灵活,但需要有一定的 JavaScript 脚本知识。

    注1:该类型的数据集需要使用 2019-03-10 之后的 JAR 包。

    注2:在数据集中支持选择使用的引擎类型:V8引擎/Nashon 引擎

    V8 为高速引擎,支持 ES6 语法,但低版本服务器可能不支持。默认为自带的引擎,效率较低但兼容性好。

    注3:支持的引擎类型与Redis服务器有关,部分服务器版本不支持V8 引擎,可使用语句查看当前服务器使用的脚本引擎:

    return merge([[console.engine()]], ["engine"]);  

    3.3.1 新建 Redis 程序数据集

    222

    3.3.2 编写 Redis 查询脚本

    注意:脚本语句基于JavaScript,在使用前需要掌握一定的JavaScript基础,提供一个自学JS语言的网站仅供参考:JS学习

    1)输入对应的脚本,进行数据集查询,如下图所示:

    1582275548755534.png

    2)得到预览结果如下图所示:

    22.png

    3)同时也可以在脚本中传递参数,如下图中的 ${key} ,表示 key 是从报表中传递的参数,如下图所示:

    注:查询脚本中使用的参数名字,和报表参数的名字不能相同,例如这里的key和name,是两个不同的名字。

    622.png

    3.3.3 内置函数和变量

    名称

    作用

    类型

    注意事项

    redis表示 redis 客户端变量-
    redis.get等同于命令 get函数-
    redis.hget等同于命令 hget函数-
    redis.hkeys等同于命令 hkeys函数-
    redis.hmget等同于命令 hmget函数-
    redis.hgetAll等同于命令 hgetall函数注意是驼峰式的方法名字,不是全小写
    redis.keys等同于命令 keys函数-
    redis.lrange等同于命令 lrange函数-
    redis.mget等同于命令 mget函数-
    redis.smembers等同于命令 smembers函数-
    unique(array)将数组进行去重,主要用于列名处理函数-
    console.log(info)输出调试信息,会在日志文件中输出 INFO 级别的信息函数-
    console.error(err)输出错误级别的信息,会在日志文件中输出 ERROR 级别的信息函数-
    console.engine输出使用的脚本引擎函数V8或者Nashorn
    merge(table, column)合并数据集的内容和列名对象,用于给数据集返回正确的数据结构函数第一个参数必须是一个二维数组,第二个参数必须是一个一维数组

    注意:所有 Redis 函数均返回的是字符串,如果需要转换成数组或者对象,可以使用 JSON.parse() 函数将字符串转换为 JavaScript 对象。

    3.3.4 执行外部脚本

    在 Redis 程序数据集中,可以使用 Files.require(filePath) 来引入外部脚本文件,示例如下:

    // 相对路径,读取的是 下的文件
    // Files.require("");表示读取 C 盘下的文件
    Files.require("");
    return merge(content, column);

    其中 query.js 文件的位置为:报表工作目录/resources/script/query.js

    使用相对路径的时候会读取报表工作目录下的文件,使用绝对路径时,会直接读取该文件。

    附件列表


    主题: 数据准备
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持