JAVA全系列 教程
3762个小节阅读:7092.7k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
共享内存是进程间通信( IPC )的一种常用手段,它在系统内存里开辟了一个特别的区域,多个进程可以共享所有权读写数据,比起信号、管道、消息队列、套接字等其他方式来说速度更快,也更加灵活实用。
OpenResty 内置了强大的共享内存功能,不仅支持简单的数据存取,还支持原子计数和队列操作,用起来就像是一个微型的 Re dis 数据库,极大地便利了 worker 进程间的通信和协作,而且还能够演化出许多新的用途,例如缓存、进程锁、流量统计等。
openresty支持三种 布尔 数字 字符串
在使用OpenResty 的共享内存功能之前,需要先在配置文件里定义,格式是:
xxxxxxxxxx
lua_shared_dict dict size; # 定义一个名字为dict的共享内存 大小为 size
lua_shared_dict shmem 1m; # 定义一个1m 的共享内存 名字为shmem
指令 lua_shared_diet 定义的共享内存 diet 会在 OpenResty 里表示为 ngx.shared
表里的一个对象,即 ngx.shared.dict ,可以在任意的执行阶段里使用,通常的形式是:
local diet = ngx.shared.dict 获取共享内存对象
操作共享内存对象需要使用 " : "具体用法与 Redis 命令类似,学习起来非常容易。
共享内存对象有五种写入数据的方法:
向共享内存写入数据后就可以用get或get_stale方法获取数据:
xxxxxxxxxx
-- ok , err = shmem:set("num",1,0.05)
-- add 新增数据 如果有改数据则新增失败
--shmem:add("num",10)
-- replace 改写 如果该写不存在的key 就失败
--shmem:replace("num",20)