redisd.lua 663 Bytes
local skynet = require "skynet"
require "skynet.manager"
local redis = require "skynet.db.redis"

local db
local idx = ...
local command = {}

function command.open(conf)
	db = redis.connect({
		host = conf.redishost,
		port = conf.redisport,
		db = conf.redisdb or 0,
		auth = conf.auth,
	})
end

skynet.start(function()
	skynet.dispatch("lua", function(session, address, cmd, ...)
		if cmd == "open" then
			local f = command[string.lower(cmd)]
			skynet.ret(skynet.pack(f(...)))
		else
			skynet.ret(skynet.pack(db[string.lower(cmd)](db, ...)))
		end
	end)
	skynet.info_func(function()
		return skynet.stat("mqlen")
	end)
	skynet.register(".redis" .. idx)
end)