keydb 提供的ModJS 模块

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/

posted on   荣锋亮  阅读(47)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-04-22 如何编写一个简单的TypeScriptToLua lua 模块定义包
2022-04-22 spring security nginx https proxy 问题
2021-04-22 cube.js 调度&&查询队参考参数
2021-04-22 cube.js 自定义首页显示信息
2020-04-22 How We Spotted and Fixed a Performance Degradation in Our Python Code
2020-04-22 nodejs 基础镜像的一个参考
2020-04-22 几款不错的基于web 的sql编辑器

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示