Redis 使用 Lua 模糊查询所有key 及 相对应的集合总数
.Net 4.5.1
需要引入: StackExchange.Redis (测试用的 1.2.4.0)
方法一:
优点:原子操作,对于大数据操作快,lua 语法难写。
var Prefix = "Cache"; //Key 前缀,关键词
var dic = new Dictionary(); //转换为键值队
var db = new Multiplexer(name).GetMultiplexer().GetDatabase(); //redis 连接
var pattern = Prefix + "*"; // 模糊查询
//lua 语法,详情可查看官方文档
var lua = @"local glob = @keypattern
local t = { }
local keys = redis.call('keys', glob)
for iter, value in ipairs(keys) do
table.insert(t, { value, redis.call('llen', value) })
end
return t";
var redisResult = db.ScriptEvaluate(LuaScript.Prepare(lua), new { @keypattern = pattern });
if (!redisResult.IsNull)
{ //将key 及value