nginx lua如何取后端redis key为数组

发布时间:2020-06-17 14:31:49 作者:元一
来源:亿速云 阅读:528

概念 

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好

Nginx优点

Nginx 可以在大多数 UnixLinux OS 上编译运行,并有 Windows 移植版。 Nginx 的1.4.0稳定版已经于2013年4月24日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。

Nginx 的源代码使用 2-clause BSD-like license。

Lua

是一个简洁、轻量、可扩展的程序设计语言,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成的研究小组于1993年开发而成,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行,它还有一个同时进行的JIT项目,提供在特定平台上的即时编译功能,但Lua并没有提供强大的库,所以不适合作为开发独立应用程序的语言使用。

#按毫秒级取值
math.randomseed(tostring(os.time()):reverse():sub(1, 7))
假设取服务器ip值为两个,13,24
action2={13,24}
如果数组元素数大于1
if (#action2) > 1 then
将服务器ip重新赋值为action2的多个元素值中的一个.
action2=action2[math.random(#action2)]
打印重新赋值后的aciton2(服务器ip)
print (action2)
end
后续可以自己控制action2 = redis里的某一个key/value, value数>1 即可随机取值, 返回给nginx

扩展知识:

redis

是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

推荐阅读:
  1. 基于cookie在nginx实现业务灰度发布
  2. nginx-lua取后端redis key为数组时的随机取值

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

nginx redis edi

上一篇:Java中的“==”、“compareTo()”和“equals()”的区别

下一篇:FTP 服务器搭建 子网 permission cant't open data connection

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》