Skip to content

MemoryStoreHashMapSetOptions

概览

字段
KindData · 数据 Data
Realmserver

MemoryStoreHashMapSetOptions 用于配置 MemoryStoreHashMap:SetAsync 方法的可选行为,通过设置布尔条件、数值比较或生存时间等字段,精确控制键值对的写入策略。它支持存在性检查、值大小比较、累加操作以及键的过期管理,帮助开发者实现复杂的条件更新逻辑。

适用场景

在需要根据键是否存在、旧值大小或设置过期时间等条件来更新哈希表数据时,创建 MemoryStoreHashMapSetOptions 实例并传入 SetAsync 方法,以实现原子化的条件写入。

使用要点

通过 MemoryStoreHashMapSetOptions.New() 或 MemoryStoreHashMapSetOptions() 创建选项,设置所需字段后,作为第三个参数传入 MemoryStoreHashMap:SetAsync(key, value, options)。

注意事项

所有字段默认为 nil,表示不启用对应条件;仅当新旧值均为数值时,LT、GT、INCR 等比较和累加字段才有效;生存时间字段 EX、PX、EXAT、PXAT 和 KEEPTTL 用于控制键的过期行为,注意单位差异。

代码示例

创建仅在键不存在时写入的选项

lua
-- @runtime server
local options = MemoryStoreHashMapSetOptions()
options.NX = true
options.EX = 60
print('条件写入选项:', options.NX, options.EX)

属性 (18)

Name类型默认值说明
XXBool-设置此属性为 true 时,仅当指定的键已存在于 HashMap 中时,才会执行设置操作。
NXBool-设置此属性为 true 时,仅当指定的键不存在于 HashMap 中时,才会执行设置操作。
LTBool-设置此属性为 true 时,仅当新旧值均为数值且新值小于当前值时,才会执行更新操作。
LTEBool-设置此属性为 true 时,仅当新旧值均为数值且新值小于或等于当前值时,才会执行更新操作。
GTBool-设置此属性为 true 时,仅当新旧值均为数值且新值大于当前值时,才会执行更新操作。
GTEBool-设置此属性为 true 时,仅当新旧值均为数值且新值大于或等于当前值时,才会执行更新操作。
INCRBool-设置此属性为 true 时,新值将累加到当前值上,而不是覆盖。要求新旧值均为数值。
LTTFloat-设置此属性为指定数值后,仅当键的当前值小于该指定值时,才会执行更新操作。
LTETFloat-设置此属性为指定数值后,仅当键的当前值小于或等于该指定值时,才会执行更新操作。
GTTFloat-设置此属性为指定数值后,仅当键的当前值大于该指定值时,才会执行更新操作。
GTETFloat-设置此属性为指定数值后,仅当键的当前值大于或等于该指定值时,才会执行更新操作。
EQTAny-设置此属性为指定值后,仅当键的当前值等于该指定值时,才会执行更新操作。
NEQTAny-设置此属性为指定值后,仅当键的当前值不等于该指定值时,才会执行更新操作。
EXInt-设置键的生存时间(TTL),单位为秒。超过该时间后键将自动过期。
PXInt-设置键的生存时间(TTL),单位为毫秒。超过该时间后键将自动过期。
EXATInt-设置键的绝对过期时间,单位为秒(Unix 时间戳)。到达该时间后键将自动过期。
PXATInt-设置键的绝对过期时间,单位为毫秒(Unix 时间戳)。到达该时间后键将自动过期。
KEEPTTLBool-设置此属性为 true 时,将保留键现有的生存时间,不会重置或修改 TTL。

函数 (1)

New

签名:New() -> MemoryStoreHashMapSetOptions

创建一个新的 MemoryStoreHashMapSetOptions 实例,用于配置 HashMap 的 SetAsync 操作选项。

返回值 MemoryStoreHashMapSetOptions

示例代码

创建条件写入选项

lua
-- @runtime server
local options = MemoryStoreHashMapSetOptions.New()
options.NX = true
options.EX = 60
print('选项已创建:', options.NX, options.EX)