代码编织梦想

lua_shared_dict设置一块共享内存区域,可以被各个worker共享
写在http模块中
比如下面这个,表示设置了一块共享的内存区域,大小为10m.

 lua_shared_dict sdata 10m;

设置了这里面就可以存数据了,怎么读写数据呢?有set和get方法,直接可以往这块共享内存写数据

测试一下
测试代码写在外部lua文件中,这里引入一下

   server {
        listen       80;
        server_name  localhost;
        location / {
            stub_status on;
            default_type text/html;
            content_by_lua_file /usr/local/openresty/lualib/luatest/tmp.lua;
        }
    }

外部lua代码如下

 -- 获取共享内存的dict对象
local x=ngx.shared.sdata
-- 在共享内存里放个kv对
x:set("a","apple")
ngx.say("STOREDS")

-- 获取数据
ngx.say(x:get("a"))

打开网页刷新测试一下,可以看出已经获取到了存储在共享内存的值.
在这里插入图片描述

总结

  • ngx.shared 加上共享内存的名字可以获取这个共享的dict对象
  • 可以用set方法往共享内存中存数据,同时可以利用get方法从共享内存中取值

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/u010711495/article/details/111053164

Nginx中一个server配置多个location-爱代码爱编程

  启动 启动nginx,到nginx文件目录下,执行: 1 start nginx.exe   停止nginx:   nginx -s stop 注意:有时候停止nginx会出现如下错误: 1 error: nginx: [emerg] invalid number of arguments in "root" dir

阿里云Centos8安装nginx-爱代码爱编程

1.到官网下载一个稳定版 2.上传到服务器 3.解压缩 [root@xxx local]# tar -xvf nginx-1.18.0.tar.gz [root@xxx local]# ls aegis etc include lib64 nginx-1.18.0 redis share bin gam

Nginx学习-爱代码爱编程

参考:Nginx 配置详解 常用: nginx.conf的地址:/usr/local/nginx/conf/nginx.conf 启动:nginx 结束:nginx -s stop 配置后重新启动:nginx -s reload 全局地址:etc/bashrc /etc/profile source /etc/profile 1 nginx常用功能 1

Docker 管理 nginx-爱代码爱编程

Docker 安装 nginx 拉取 Nginx 官方镜像: docker pull nginx 查看本地已经安装的镜像,如果有我们刚拉取的镜像: docker images 启动 Nginx 容器 docker run --name my-nginx -p 8080:80 -d nginx 改变配置文件nginx.conf ,进入容器,

lua_shared_dict的incr方法-爱代码爱编程

目的 用于给共享内存中的kv对的v的值进行自增 案例 lua_shared_dict设置一块共享内存区域,可以被各个worker共享 写在http模块中 比如下面这个,表示设置了一块共享的内存区域,大小为10m. lua_shared_dict sdata 10m; -- 获取共享内存的dict对象 local x=ngx.shared.s

Nginx页面乱码问题-爱代码爱编程

location / { #root html; root E:\workspace\activiti-designer\dist; # Nginx启动本地前端 index index.html index.htm; } Nginx启动页面成功之后,index.html乱码

lua浮点型精度问题的讨论-爱代码爱编程

背景介绍 某天,要重新编译一个超级大工程。漫长的加载和编译时间至少要等一个上午,让我们来做一些有趣的事情吧。 前段时间,测试同学报了一个BUG,游戏比分没办法严格精确到小数点后面两位。 策划的需求是,如果数字小数点后面超出两位,直接进行数字截取前两位,不能做任何四舍五入之类的操作。例如,1.9999必须为1.99,不能变成2.00。 首先查阅框架代

Redis Tool的开发历程-爱代码爱编程

前言 基于git上的【RDM.dev GUI for Redis】工具总是崩溃和目前网络平台上比较流行的【HslRedisDesktop】在加载大批量数据时总是假性卡死(一般超过15000条数据需要缓冲10秒以上,数据量越多,时间越久,本人测试电脑的CPU是i5-9400,具体时间可能会根据电脑型号不一样而不一样)的情况下迫不得已自己动手使用核心库 St

【日常踩坑系列01】JetBrain Rider2020.1在Unity3D中断点调试Lua-爱代码爱编程

【日常踩坑系列01】JetBrain Rider2020.1在Unity3D中断点调试Lua JetBrain Rider2020.1+Unity+EmmyLua+EmmyLua-AttachDebugger第一步:下载Rider第二步:下载并安装EmmyLua插件第三步:下载并安装EmmyLua-AttachDebugger 插件(关键!!)第四

LuaScriptCore-爱代码爱编程

LuaScriptCore 1.Android集成使用文档 2.https://gitee.com/Ghost233/LuaScriptCore(项目中使用到的实际LuaScriptCore源码) 集成方式 自动集成: compile'com.github.vimfung.luascriptcore:luascriptcore:2.3.2'

openresty查看log-爱代码爱编程

log的位置 log的位置是可以自定义的,比如你的启动方式如下 openresty -p /opt/apps -c conf/main-nginx.conf 那么log的位置就在main-nginx.conf中有定义,比如配置文件有这么一句error_log是指令 后面是log的位置,最后一个error是log级别. 这个位置是相对于配置文件所在的

双机容灾&负载均衡&动态代理:(keepalived结合openresty+redis实现)-爱代码爱编程

鉴于杰克公司部分系统偶尔宕机,造成一定的生产影响,做了这套双机系统,完整代码有空再更,不足之处欢迎指出 可视化页面路由管理页面,支持多台软件服务器 支持实时添加软件服务器,修改和删除操作,包含服务器掉线短信提醒功能 效果图,技术原理图     目录 采取keepalived+openresty+redis节点同时部署在一台服务器的策略,路由