首页 > 其他分享 >keydb 提供的ModJS 模块

keydb 提供的ModJS 模块

时间:2023-04-22 23:11:51浏览次数:55  
标签:keydb ModJS redis 模块 mymodules tsup

keydb 提供了ModJS 模块,可以支持js 开发redis 扩展,很方便,同时也支持了简单的npm 模块能力(但是也有不少限制)
以下是一个参考使用

环境准备

  • docker-compose
    注意npm 模块需要到redis 的work 目录(具体如下docker 的是/data)
 
version: '3'
services:
  keydb:
     image: eqalpha/modjs
     command:  keydb-server  /etc/keydb/keydb.conf  --loadmodule  /usr/lib/keydb/modules/modjs.so  /mymodules/dist/index.js
     volumes:
      - ./scripts:/scripts 
      - ./mymodules:/mymodules
      - ./mymodules/node_modules:/data/node_modules
     ports:
       - 6379:6379
  • 支持基于typescript 的模块开发(基于了tsup)
    src/index.ts, 引用了lodash 进行合并处理
 
declare  const keydb: any;
declare  const redis: any;
var _ = require("lodash")
 
function concat(key1, key2) {
    var str1 = redis.call('get', key1);
    var str2 = redis.call('get', key2);
    return _.camelCase(str1 + " " + str2)
}
keydb.register(concat);

tsup.config.js

import { defineConfig } from 'tsup'
 
export default defineConfig({
  entry: ['src/index.ts'],
  splitting: false,
  sourcemap: true,
  clean: true,
  minify: false,
  format:["cjs","esm","iife"]
})

运行效果

  • 启动
docker-compose up -d
  • 效果

说明

keydb 提供的ModJS 模块很不错,但是目前缺少维护,内部基于了v8 引擎,对于npm 支持的限制参考官方文档说明

参考资料

https://github.com/Snapchat/KeyDB
https://github.com/Snapchat/ModJS
https://tsup.egoist.dev/

标签:keydb,ModJS,redis,模块,mymodules,tsup
From: https://www.cnblogs.com/rongfengliang/p/17344407.html

相关文章

  • OverTheWire攻关过程-Bandit模块2
    我们打开lv1-lv2查看信息机器翻译如下:下一级别的密码存储在名为的文件中-位于主目录中我们登陆查看下发现只有一个横杠cd不进入,cat查看不了原来是一个特殊字符使用cat./-可以查看文件内容知识点:这种方法有很多误解,因为使用-作为参数是指STDIN/STDOUT即dev/stdin或dev/stdou......
  • 【maven】模块化开发
    什么是maven模块化开发? 在多人协同开发,特别是规模较大的项目,为了方便日后的代码维护和管理,我们会将每个开发人员的工作细分到具体的功能和模块上。......
  • 【python】os模块
    os即operatingsystem,os模块提供的就是各种Python程序与操作系统进行交互的接口。读写文件建议使用内置函数withopen()。导入os模块importos列出路径——os.listdir()os.listdir(path='.')列出目录下的全部路径及文件。函数返回值是一个列表,其中元素为字符串......
  • java-动态模块添加注解处理器
    前言:最近接了个任务要在app中接入QQ小游戏sdk。因为该小游戏只是在国内不在googleplay发行,则需要做成动态模块的方式。步骤一、在工程中创建动态模块二、接入QQ小游戏sdk1、该sdk暂时不支持外部maven,则需要把对应的sdk拷贝到自己的目录下。2、将对应sdk的aar和jar拷贝到libs......
  • 模型评估指标——sklearn.metrics模块
    sklearn.metrics模块该模块主要包含分数函数、性能指标、成对指标、距离计算1.分类性能指标1.1.accuracy_score()计算所有样本中分类正确样本所占的比例语法##语法sklearn.metrics.accuracy_score(y_true,y_pred,*,normalize=True,sample_weight=None)y_tru......
  • ImportError: DLL load failed while importing QtChart: 找不到指定的模块
    这个错误通常是由于您的Python环境缺少QtChart模块或QtChart模块依赖的库文件之一导致的。解决此问题的方法可能因操作系统和Python环境而异,但下面是一些常见的解决方法:检查是否已安装QtChart模块和其依赖项。您可以使用pip命令在终端中安装QtChart模块:Copycodepipinstal......
  • Django框架——手写web框架、wsgiref模块、动静态网页、jinja2模块、主流web框架、Dja
    web应用'''通过浏览器访问的应用程序!!!'''1.两种模式c/sb/s B/S:browser---------------->server2.web应用程序的有点 2.1只需要一个浏览器即可2.2 节省资源2.3 他们不需要更新,因为所有新的特性都在服务器上执行3.web应用程序的缺点 #特别依赖服务端程序的健壮......
  • pyinstaller 打包时第三方模块与图片资源加载
    打包命令pyinstaller--onefile--windowed**.py 修改**.spec文件pathex=['/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ddddocr'],datas=[('./images','images'),('/Library/Frameworks/Python.fram......
  • 阶乘 reduce函数 operator模块
       fromfunctoolsimportreducefromoperatorimportmuldeffact(n):#使用reduce和operator.mul函数计算阶乘returnreduce(mul,range(1,n+1))#使用reduce函数和一个匿名函数计算阶乘#returnreduce(lambdaa,b:a*b,range(1,n+1)) ......
  • python-ldap模块
    文章目录模块作用模块安装代码示例参考文档模块作用python操作ldap的库,可以对ldap的数据进行增删改查,官方文档地址:https://www.python-ldap.org/en/latest/index.html模块安装pipinstallpython-ldap代码示例不断完善中……#!/usr/bin/envpython#-*-coding:utf-8-*-#......