xMagic- 仓湖云函数数字应用平台
首页
🍓 函数引擎
更多产品
更多产品
  • 微澜组网
首页
🍓 函数引擎
更多产品
更多产品
  • 微澜组网
  1. xScript - x16.25.11
  • xMagic - 仓湖云函数数字应用平台
  • xScript - 仓湖云函数数字应用引擎
  • xMagic - 二开应用场景案例
  • 数据应用
    • 消息订阅(WSS)
    • 消息订阅(SSE)
    • 用户信息
    • 免密登陆(短信)
  • xScript - x16.25.11
    • assert
    • buffer
    • color
    • compress
    • console
    • crontab
    • crypto
    • encoding
    • events
    • evenloop
    • esm
    • fetch
    • fs
    • image
    • kv
    • mail
    • ml
    • mqtt
    • multipart
    • net
    • os
    • path
    • process
    • protobuf
    • querystring
    • redis
    • request
    • require
    • sql
    • tty
    • tui
    • ua
    • url
    • util
    • websocket
    • xml
    • yaml
    • mongo
    • http
    • stream
    • runtime
  • 小工具
    • APS - 代理转发
      • Any Proxy Service - 高级 HTTP/HTTPS/gRPC 代理转发工具
      • 配置指南 - 双向 Headers 和 Match/Replace
  • 数据模型
    • Schemas
      • AdminChangeAvatarReq
      • casbin.CasbinRule
      • AdminDelBatchReq
      • entity.DeptLable
      • AdminDelReq
      • entity.DevGenTable
      • AdminListReq
      • entity.DevGenTableColumn
      • AdminLoginReq
      • entity.FlowWorkClassify
      • AdminPostReq
      • entity.FlowWorkInfo
      • AdminReply
      • entity.FlowWorkTemplates
      • AdminUpdatePwdReq
      • entity.LogLogin
      • MenuDelBatchReq
      • entity.LogOper
      • MenuDelReq
      • entity.LoginM
      • MenuListReq
      • entity.MenuLable
      • MenuPostReq
      • entity.MenuPath
      • MenuReply
      • entity.ResEmail
      • RoleApisReq
      • entity.ResOss
      • SystemApiDelBatchReq
      • entity.ScreenGroupLabel
      • SystemApiDelReq
      • entity.SysApi
      • SystemApiListReq
      • entity.SysConfig
      • SystemApiPostReq
      • entity.SysDept
      • SystemApiReply
      • entity.SysDictData
      • SystemDepartmentDelBatchReq
      • entity.SysDictType
      • SystemDepartmentDelReq
      • entity.SysJob
      • SystemDepartmentListReq
      • entity.SysMenu
      • SystemDepartmentPostReq
      • entity.SysNotice
      • SystemDepartmentReply
      • entity.SysPost
      • SystemRoleApiDelBatchReq
      • entity.SysRole
      • SystemRoleApiDelReq
      • entity.SysTenants
      • SystemRoleApiListReq
      • entity.SysUser
      • SystemRoleApiPostReq
      • entity.SysUserB
      • SystemRoleApiReply
      • entity.SysUserId
      • SystemRoleDelBatchReq
      • entity.SysUserView
      • SystemRoleDelReq
      • entity.VisualRuleChain
      • SystemRoleListReq
      • entity.VisualScreen
      • SystemRoleMenuAddReq
      • entity.VisualScreenGroup
      • SystemRoleMenuDelBatchReq
      • form.Login
      • SystemRoleMenuDelReq
      • from.SendMail
      • SystemRoleMenuListReq
      • map[string]interface {}
      • SystemRoleMenuPostReq
      • map[string]string
      • SystemRoleMenuReply
      • model.BaseAutoModel
      • SystemRolePostReq
      • model.BaseModel
      • SystemRoleReply
      • model.ResultPage
      • model.ResultPage.data
      • vo.AuthVo
      • vo.DeptTreeVo
      • vo.MenuTreeVo
      • vo.MetaVo
      • vo.RouterVo
      • vo.TableInfoVo
      • vo.TokenVo
      • vo.UserRolePost
      • vo.UserVo
      • vo.UserVo.data
首页
🍓 函数引擎
更多产品
更多产品
  • 微澜组网
首页
🍓 函数引擎
更多产品
更多产品
  • 微澜组网
  1. xScript - x16.25.11

kv

KV 模块#

KV 模块为 XScript 提供轻量级的键值存储接口,内置内存存储并支持从路径导入、统计、Hash 与 ZSet 结构、简易事务以及 WAL(预写日志)配置。
注意:模块内部名称为 "cache",在工程中也可以通过 require('kv') 使用。

引入#

快速开始#

数据导入#

键值操作(KV)#

kv.set(name, key, value, ttlMs)
设置键值;ttlMs 为过期毫秒数。
当 ttlMs 为 0 表示不过期。
kv.get(name, key)
获取键值,存在返回对应值,不存在返回 null。
kv.del(name, key)
删除键,返回 true 表示成功。
kv.cut(name, key)
读取并删除键,存在返回值,不存在返回 null。
kv.has(name, key)
判断键是否存在,返回 true/false。
kv.hasOrSet(name, key, value, ttlSec)
若键不存在则设置并返回 true;存在返回 null。
注意:此处过期单位为"秒"。
kv.peek(name, key)
获取键值但不更新访问时间(不会影响 LRU 次序),存在返回值,不存在返回 null。
kv.peekOrSet(name, key, value, ttlSec)
若键不存在则设置并返回 true;存在返回 null。
注意:此处过期单位为"秒"。
kv.pop(name)
弹出一个元素(按内部列表顺序),存在返回值,不存在返回 null。
kv.clear(name)
清空存储,返回 true。
kv.keys(name)
返回当前存储的所有键数组。
kv.stack(name)
返回内部列表快照(用于观察顺序与内容)。
kv.size(name)
返回当前存储的元素数量。
kv.resize(name, size)
调整存储容量,成功返回 true。当 size 为 0 将触发参数错误。

存储管理#

kv.new(name, size)
创建存储(若已存在直接返回存储名)。
kv.import(name, path, size)
从路径加载数据并以给定容量创建/覆盖同名存储,成功返回存储名。
加载失败返回错误对象(ERR_INVALID_VALUE 类型)。
kv.list()
返回所有已创建的存储名列表。
kv.drop(name)
删除指定存储,成功返回 true。

统计函数#

支持对存储中的数值进行统计计算,可选传入 pattern 参数来过滤键名:
kv.count(name, pattern?)
统计键数量,可选传入 pattern 进行过滤。
kv.sum(name, pattern?)
计算数值总和,可选传入 pattern 进行过滤。
kv.avg(name, pattern?)
计算数值平均值,可选传入 pattern 进行过滤。
kv.max(name, pattern?)
返回最大数值,可选传入 pattern 进行过滤。
kv.min(name, pattern?)
返回最小数值,可选传入 pattern 进行过滤。
示例:

Hash 操作#

Hash 提供了类似 Redis Hash 的结构,支持在一个键下存储多个字段:
kv.hash.set(name, key, field, value)
设置 Hash 中的字段值。
kv.hash.get(name, key, field)
获取 Hash 中的字段值。
kv.hash.mGet(name, key, ...fields)
批量获取多个字段值,返回数组。
kv.hash.getAll(name, key)
获取 Hash 中的所有字段和值,返回对象。
kv.hash.len(name, key)
返回 Hash 中的字段数量。
kv.hash.keys(name, key)
返回 Hash 中所有字段名数组。
kv.hash.vals(name, key)
返回 Hash 中所有值数组。
kv.hash.incrBy(name, key, field, delta)
将 Hash 中字段的值增加 delta(整数)。
kv.hash.del(name, key, ...fields)
删除 Hash 中的一个或多个字段,返回删除的数量。
示例:

ZSet 操作#

ZSet(有序集合)提供了按分数排序的成员集合,类似 Redis ZSet:
kv.ZSet.add(name, key, score, member)
添加成员及其分数到有序集合。
kv.ZSet.score(name, key, member)
获取成员的分数。
kv.ZSet.rank(name, key, member)
获取成员的排名(升序,从 0 开始)。
kv.ZSet.revrank(name, key, member)
获取成员的排名(降序,从 0 开始)。
kv.ZSet.range(name, key, start, stop)
按排名范围获取成员(升序)。
kv.ZSet.revrange(name, key, start, stop)
按排名范围获取成员(降序)。
kv.ZSet.rangeByScore(name, key, min, max)
按分数范围获取成员。
kv.ZSet.card(name, key)
返回有序集合的成员数量。
kv.ZSet.count(name, key, min, max)
返回指定分数范围内的成员数量。
kv.ZSet.incrBy(name, key, member, delta)
将成员的分数增加 delta。
kv.ZSet.rem(name, key, member)
删除成员。
kv.ZSet.popMin(name, key)
弹出分数最小的成员,返回 {member, score} 对象。
kv.ZSet.popMax(name, key)
弹出分数最大的成员,返回 {member, score} 对象。
kv.ZSet.rangeByLex(name, key, min, max, inclusive)
按字典序范围获取成员。
示例:

简易事务(Tx)#

提供基本的事务支持:
kv.tx.begin(name)
开始事务,返回 true。
kv.tx.set(name, key, value, ttlMs)
在事务中设置键值(会自动 begin 和 commit)。
kv.tx.commit(name)
提交事务,返回 true。
示例:

WAL(预写日志)#

WAL 提供数据持久化能力:
kv.wal.setPath(name, path)
设置 WAL 文件保存路径。
kv.wal.setFlushWorkers(name, workerCount)
设置刷盘工作线程数。
kv.wal.startFlushWorkers(name)
启动刷盘工作线程。
kv.wal.close(name)
关闭 WAL,停止刷盘。
示例:

完整示例#

修改于 2025-11-05 11:55:08
上一页
image
下一页
mail
Built with