memory

Types

get函数专有错误类型

pub type CallErr {
  CallClosed
  CallPanic
}

Constructors

  • CallClosed

    缓存已关闭

  • CallPanic

    函数panic

其余函数使用的错误类型

pub type Closed {
  Closed
}

Constructors

  • Closed

    缓存已关闭

Memory

opaque

用于与缓存通信

该类型由new函数返回

pub opaque type Memory(key, val)

Values

pub fn clear(memory: Memory(key, val)) -> Result(Nil, Closed)

清空缓存

Return

进程存活返回 Ok

进程死亡返回 Error

pub fn closure(memory: Memory(key, val)) -> Result(Nil, Closed)

关闭缓存

Return

进程存活返回 Ok

进程死亡返回 Error

pub fn from_list(
  memory: Memory(key, val),
  list: List(#(key, val)),
) -> Result(Nil, Closed)

从列表创建新的LRU以替代现有的,若列表为空则不作操作

LRU大小等于列表大小

重复key取第一次的val

Return

进程存活返回 Ok

进程死亡返回 Error

pub fn get(
  memory: Memory(key, val),
  key: key,
) -> Result(val, CallErr)

获取结果

Return

进程存活: Ok

进程死亡: Error(CallClosed)

函数panic:Error(CallPanic)

pub fn get_list(
  memory: Memory(key, val),
) -> Result(List(#(key, val)), Closed)

获取缓存结果的键值对列表

按访问时间从最久访问到最近访问排序

Return

进程存活返回 Ok

进程死亡返回 Error

pub fn hit_rate(
  memory: Memory(key, val),
) -> Result(Float, Closed)

缓存命中率

返回百分比数字,保留两位小数

Return

进程存活返回 Ok

进程死亡返回 Error

pub fn new(
  func func: fn(key) -> val,
  lru_max lru_max: Int,
) -> Result(
  #(fn(key) -> Result(val, CallErr), Memory(key, val)),
  actor.StartError,
)

启动缓存

Parameter

func:需要转换的函数

lru_max:LRU的大小,小于1则设置为1

pub fn set_max(
  memory: Memory(key, val),
  max: Int,
) -> Result(Nil, Closed)

设置缓存大小

小于1则设置为1

Return

进程存活返回 Ok

进程死亡返回 Error

pub fn total_requests(
  memory: Memory(key, val),
) -> Result(Int, Closed)

总请求次数

Return

进程存活返回 Ok

进程死亡返回 Error

Search Document