lua连接redis集群

Posted 大明湖畔的守望者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua连接redis集群相关的知识,希望对你有一定的参考价值。

连接redis集群需要用到llua-resty-redis-cluster模块

github地址:https://github.com/cuiweixie/lua-resty-redis-cluster

下载完成后,只需要用到包中2个文件rediscluster.luaredis_slot.c

.c文件无法在nginx配置文件中引入,需要编译成.so文件,编译命令:  gcc SOURCE_FILES -fPIC -shared -o TARGET

如下则是连接redis集群代码:

local config = {
                name = "test",
                serv_list = {
                    {ip="127.0.0.1", port = 3100},
                    {ip="127.0.0.1", port = 3101},
                    {ip="127.0.0.1", port = 3102},
                    {ip="127.0.0.1", port = 3200},
                    {ip="127.0.0.1", port = 3201},
                    {ip="127.0.0.1", port = 3202},
                },
            }
            local redis_cluster = require "resty.rediscluster"
            local red = redis_cluster:new(config)
            for i = 1, 2 do
                red:init_pipeline()
                red:set("dog", "an animal")
                red:get("dog")
                red:set("dog", "hello")
                red:get("dog")
                local results = red:commit_pipeline()
                local cjson = require "cjson"
                ngx.say(cjson.encode(results))
            end
            red:close()

 

以上是关于lua连接redis集群的主要内容,如果未能解决你的问题,请参考以下文章

lua在redis集群中的解决方案-- command keys must in same slot

redis集群不支持lua脚本吗

阿里集群Redis执行lua问题

阿里集群Redis执行lua问题

阿里集群Redis执行lua问题

阿里集群Redis执行lua问题