Lua redis 中的传输加密连接

我正在使用 redis-lua 模块。如何在我的 lua 脚本中连接启用了传输加密的 redis 服务器?我正在使用 AWS 弹性缓存,我已经启用了 传输加密

我使用连接到未启用传输加密的 redis 实例的 lua 脚本如下,

local redis = require 'redis'
local client = redis.connect('127.0.0.1', 6379)
local response = client:ping()

从我的另一个 node.js 脚本中,我已经找到了一个连接到启用传输加密实例的解决方案,Securing Node Redis

我尝试过的代码如下,能够正常工作,但是不可靠,但是,是否有可靠的模块可用?

local ssl = require "ssl"
local socket = require "socket"
local params = {
    mode = "client",
    protocol = "tlsv1",
    verify = "none",
    options = "all",
}
local tcp_socket = socket.tcp()
tcp_socket:connect("xxxxxxxxxx", "6379")
local conn  = ssl.wrap(tcp_socket, params)
conn:dohandshake()
conn:send("AUTH testing\n\n")
conn:send("SET test tcp\n\n")
local line, err = conn:receive()
print(err or line)
conn:close()

祝愉快

点赞
用户4090032
用户4090032

redis-lua模块支持多种连接参数的方式。其中一种方式是在表格中提供创建的套接字,如下所示:

{
    socket = <socket>
}

要连接到启用了中途加密的redis弹性缓存,可以使用以下代码:

local ssl = require "ssl"
local socket = require "socket"
local redis = require "redis"
local config = {
    host = "xxxxxxxxxxxxxx",
    port = "6379",
    password = "XXXXXXXXXXXXXXX"
}
local params = {
    mode = "client",
    protocol = "tlsv1",
    verify = "none",
    options = "all",
}
local tcp_socket = socket.tcp()
tcp_socket:connect(config.host, config.port)
local conn  = ssl.wrap(tcp_socket, params)
conn:dohandshake()
local client = redis.connect({
    socket = conn
})
client:auth(config.password)
print(client:ping())
2018-06-28 08:57:51