跳到内容

RedisGears函数运行时

Python RedisGears函数是使用嵌入式Python解释器运行的。每个函数使用一个单独的子解释器。所有函数共享相同的环境和依赖项。导入环境时带有几个默认值。

以下部分描述运行时环境。

Python解释器

RedisGears嵌入了一个Python版本3.7.2+解释器。

所有函数都使用这个解释器。每次调用RG。PYEXECUTE维护自己的全局字典,将其执行上下文与其他调用隔离开来。这意味着在给定调用中提交的所有函数共享相同的解释器和globals字典。

进一步的参考

欲了解更多信息,请参阅:

环境

解释器的环境可以用任何依赖包来扩展,这些依赖包以后可以被各自的子解释器中的函数导入和使用。

进一步的参考

有关安装依赖项的更多信息,请参阅:

GearsBuilder

GearsBuilder类在默认情况下导入到运行时环境。

它公开了函数的功能上下文建设者

执行

execute ()函数默认被导入到运行时环境中。

这个函数执行一个任意的Redis命令。

进一步的参考

有关Redis命令的更多信息,请参阅:

Python API

def执行命令arg游戏

参数

  • 命令:要执行的命令
  • arg游戏:命令的参数

例子

# ping服务器(回复应该是'PONG')回复执行“萍”

原子

原子()Python上下文默认被导入到运行时环境中。

上下文通过阻塞主Redis进程来确保它中的所有操作都被原子地执行。

Python API

原子()

例子

#自动增加两个键def事务_):原子():执行“增加”f{{标签()}}: foo”执行“增加”f{{标签()}}:酒吧gbGB“ShardsIDReader”gbforeach事务gb运行()

configGet

configGet ()函数默认被导入到运行时环境中。

这个函数获取RedisGears的当前值配置选择。

Python API

defconfigGet关键

参数

  • 关键:配置选项键

例子

获取“ProfileExecutions”的当前值喷火configGet“ProfileExecutions”

gearsConfigGet

gearsConfigGet ()函数默认被导入到运行时环境中。

这个函数获取RedisGears的当前值配置选项,如果该键不存在,则返回默认值。

Python API

defgearsConfigGet关键默认的没有一个

参数

  • 关键:配置选项键
  • 默认的:默认值

例子

#获取'foo'配置选项键,默认为'bar'喷火gearsConfigGet“foo”默认的“酒吧”

标签

标签()函数默认被导入到运行时环境中。

该函数返回一个hashtag,该hashtag映射到本地引擎的分片提供的最低散列槽。换句话说,它可以作为一个标签用于在集群中进行分区。

Python API

def标签()

例子

#获取碎片的标签ht标签()

日志

日志()函数默认被导入到运行时环境中。

这个函数打印一条消息到Redis的日志。

Python API

def日志消息水平“通知”

参数

  • 消息:要输出的消息
  • 水平:消息的日志级别可以是以下级别之一:
    • “调试”
    • “详细”
    • “通知”
    • “警告”

例子

#将DB中的所有数据转储到日志中,用于“调试”GB()foreachλx日志strx),水平“调试”))运行()

gearsFuture

gearsFuture ()函数默认被导入到运行时环境中。

这个函数返回gearsFuture对象,它允许另一个线程/进程处理该记录。从一个步骤的操作返回这个对象告诉RedisGears暂停执行,直到后台处理完成/失败。

gearsFuture对象提供两种控制方法:continueRun ()continueFailed ().这两个方法都是线程安全的,可以在任何时候调用,以表示后台处理已经完成。continueRun信号成功,它的参数是主进程的记录。continueFailed向主进程报告失败,其参数是描述失败的字符串。

调用gearsFuture ()仅支持以下操作:*地图flatmap过滤器foreachaggregateby

试图创造一个gearsFuture对象将导致异常。

例子

进口时间阻塞{}阻塞客户端直到密钥过期defr):fgearsFuture()关键r1如果关键阻塞():阻塞关键[]阻塞关键附加f返回fdef疏通r):res0关键r“关键”期货阻塞流行关键没有一个如果期货reslen([fcontinueRun% s过期的关键f期货])阻塞关键返回resGB“CommandReader”地图注册触发“WaitForKeyExpiration”模式“同步”GB()地图疏通注册eventTypes“过期”],模式“同步”

gearsFuture与Python Async Await

gearsFuture也与Python的async/await语法无缝集成,所以可以做到以下几点:

进口asyncio异步defcr):等待asyncio睡眠1返回rGB“ShardsIDReader”地图c运行()
Baidu