Skip to content

Latest commit

 

History

History
64 lines (57 loc) · 1.73 KB

共享内存.md

File metadata and controls

64 lines (57 loc) · 1.73 KB

共享内存

添加shared arc 缓存算法 用来临时存储数kv 结构数据 是何小量数据 比本地存储要快而且采用LRU淘汰算法变量贡献逻辑

vela.shared.*

星号 * 代表共享内存的名称

    -- 创建一个名为rate的 共享内存
    -- 新增缓存空间 大小为key的个数,而非内存大小
    vela.shared.rate= 300 --名称为rate

设置内容

vela.shared.*.set(key , val , [ttl])

  • 存储一个新的key 如果key存在的话 ,会直接覆盖, 设置了ttl的话,会重新计算时间, 没有沿用上次的expire
  • key: string
  • val: 非nil对象
  • ttl: 单位 millisecond(微秒) , 默认为永久
    local rate = vela.shared.rate
    rate.set("192.168.1.1" , 2 , 4000) -- 4s
    rate.set("192.168.1.1" , 30) -- 2个参数时候

加法运算

vela.shared.*.incr(key , step , [ttl])

  • 加法运算 如果key不存在 默认创建, 此时默认数值为step , ttl 跟set 方法类似
  • 减法运算 去负数 如:-1
    local rate = vela.shared.rate
    rate.incr("192.168.1.1" , 1 , 502)

删除Key

vela.shared.*.del(key)

    local rate = vela.shared.rate
    rate.del("192.168.1.1" , 1)

统计总数

vela.shared.*.count

  • 当前缓存中的数据条数, 不包括已经超时的
    print(vela.shared.rate.count)

vela.shared.*.count_all

  • 当前缓存中的数据条数, 包括已经超时的
    print(vela.shared.rate.count_all) 

遍历所有的key

vela.shared.pairs(fn)

  • 迭代遍历
    vela.shared.rate.pairs(function(item , stop)
        print("key: " , item.key)
        print("val: " , item.val)
        print("clock: " , item.clock)
        print("expire:" , item.expire)
    end)