OpenResty使用Lua大全OpenResty中使用Redis
local redis_host = "127.0.0.1"
local redis_port = 6379
local redis_password = "your_redis_password"
local function connect_to_redis()
local redis = require "resty.redis"
local red = redis:new()
red:set_timeout(1000) -- 1 秒超时
-- 连接到 Redis 服务器
local ok, err = red:connect(redis_host, redis_port)
if not ok then
ngx.say("连接到 Redis 失败: ", err)
return
end
-- 如果设置了密码,则进行认证
if redis_password and redis_password ~= "" then
ok, err = red:auth(redis_password)
if not ok then
ngx.say("Redis 认证失败: ", err)
return
end
end
return red
end
-- 使用 Redis 连接池
local function fetch_from_redis(red, key)
local res, err = red:get(key)
if not res then
ngx.say("查询 Redis 失败: ", err)
return
end
if res == ngx.null then
res = nil
end
return res
end
-- 将数据写入 Redis
local function save_to_redis(red, key, value)
local ok, err = red:set(key, value)
if not ok then
ngx.say("写入 Redis 失败: ", err)
return
end
return true
end
-- 示例:使用 Redis
local red = connect_to_redis()
if not red then
ngx.say("无法建立 Redis 连接")
return
end
-- 获取数据
local value = fetch_from_redis(red, "my_key")
if value then
ngx.say("获取的值: ", value)
else
ngx.say("键不存在")
end
-- 保存数据
local is_saved = save_to_redis(red, "my_key", "my_value")
if is_saved then
ngx.say("数据保存成功")
else
ngx.say("数据保存失败")
end
-- 关闭 Redis 连接
red:close()
这段代码展示了如何在OpenResty环境中使用Lua脚本连接Redis,获取数据,保存数据,并处理可能出现的错误。这是一个简化的例子,实际应用中可能需要更复杂的错误处理和资源管理。
评论已关闭