StackExchange.Redis 使用LuaScript脚本模糊查询hash
获取redis连接
public class RedisHelper{private static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["RedisConnection"].ConnectionString;private static ConnectionMultiplexer _connection;private static ConnectionMultiplexer Connection{get{if (_connection == null || !_connection.IsConnected){_connection = ConnectionMultiplexer.Connect(ConnectionString);}return _connection;}}public static IDatabase GetDatabase(){ConnectionMultiplexer redis = Connection;//return redis.GetDatabase(RedisDatebaseId);return redis.GetDatabase();}}
//根据模糊查询条件获取key值集合
var pattern = "UserInfoHash:*";//匹配符var redisResult = db.ScriptEvaluate(LuaScript.Prepare(//Redis的keys模糊查询:" local res = redis.call('KEYS', @keypattern) " +" return res "), new { @keypattern = pattern });string[] preSult = (string[])redisResult;//将返回的结果集转为数组
//根据key值集合获取所有Hash
var list = new List<ICustomInfo>();//定义存放客户信息的集合 string json = "{ 'UserInfoHash:0', 'UserInfoHash:1','UserInfoHash:2', 'UserInfoHash:4' }";//Redis的keys模糊查询: " local result={} local mykeys=" + json + "; " +" for i,v in pairs(mykeys) do result[i]=redis.call('hgetall',v) end; " +" return result")); //将结果集转为数组 var vals = (StackExchange.Redis.RedisResult[])redisResult1;foreach (var val in vals){string[] preval = (string[])val;int indexCount = Array.IndexOf(preval, "CustomerCode");int indexPwd = Array.IndexOf(preval, "Password");string ac = preval[indexCount + 1];//账号的值,等于账号名称所在的下标+1list.Add(new CustomInfo(){Password = preval[indexPwd + 1],Account = ac,UpdateTime = DateTime.Now,Token = StringExtension.ToBase64String(string.Format("{0}:{1}", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"), ac))});}
注:根据key模糊查询一次数据过多时,可能会报超时问题。 解决方法:在redis连接字符串加入对应的 syncTimeout=10000(发送/接收超时设置(毫秒) )
转载于:https://www.cnblogs.com/-xyl/p/11245104.html
StackExchange.Redis 使用LuaScript脚本模糊查询hash相关推荐
- redis的游标和模糊查询key的不适用
项目场景: 提示:这里简述项目相关背景: 例如:项目场景:查平台的支付方式 问题描述 用来redis的scan模糊匹配的方式,查询key,在redis的key大于百万级的key的时候,会导致查询非常缓 ...
- Redis实现分页和多条件模糊查询方案
导言 Redis是一个高效的内存数据库,它支持包括String.List.Set.SortedSet和Hash等数据类型的存储,在Redis中通常根据数据的key查询其value值,Redis没有模糊 ...
- stackexchange.mysql_StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改
前言 使用StackExchange.Redis没有直接相关的方法进行模糊查询的批量删除和修改操作,虽然可以通过Scan相关的方法进行模糊查询,例如:HashScan("hashkey&qu ...
- key redis 模糊查询个数_Reids Lua 模糊查询所有key 及 相对应的集合总数
Redis 使用 Lua 模糊查询所有key 及 相对应的集合总数 .Net 4.5.1 需要引入: StackExchange.Redis (测试用的 1.2.4.0) 方法一: 优点:原子 ...
- redis通过key模糊搜索_jedis模糊查询key
jedis模糊查询key 2018-11-26 redis里面存的key是byte[]类型,怎么使用jedis进行key的模糊查询 在redis里面存储了一些数据,key和value都是byte[]类 ...
- 高性能分布式缓存Redis(缓存分类 安装 数据类型选择和应用场景 发布订阅 事务 Lua脚本 慢查询日志)
高性能分布式缓存Redis 高性能分布式缓存Redis 1. 缓存发展史&缓存分类 1.1 大型网站中缓存的使用 1.2 常见缓存的分类 1.3 分布式缓存选型方案对比 2. Redis概述& ...
- Redis批量操作--增加,删除,模糊查询
需求来源 虽然说redis是纯内存操作,效率非常高,但是一次插入或者删除千万级或者亿级的操作,如果采用单条处理的api,整体处理效率还是很低的:另外,如果处理的数据量过大,稍有不慎可能就会导致clie ...
- StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用
StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用 原文: StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用 Connec ...
- 0227windows下模糊查询oracle事件的脚本
[20170227]windows下模糊查询oracle事件的脚本.txt $ cat ooerr.bat @@echo off rem disp oracle error rem /bin/grep ...
最新文章
- 夯实JavaScript基础之prototype, __proto__, instanceof
- 数字万用表的四位半,三位半都是什么意思?
- 分布式服务框架HSF学习
- 数据结构--稀疏矩阵的一种实现
- Windows 7可以体验IE10了
- MySQL 示例数据库 employees 详解
- java调用javafx_Java代码调用JavaFX的例子(大力推荐)
- 设计模式(二十三)—— 模板方法
- 信息系统项目管理04——项目整体管理
- 解决Scrapy-Redis爬取完毕之后继续空跑的问题
- select 获取option中其他的属性的值
- LCA Tarjan
- 微信小程序登录小实例
- char类型和字符串
- 不经历风雨,怎么见彩虹,没有人能随随便便成功
- 无人机优化无线传感器网络matlab代码
- glob.glob() 函数
- React-native实现联系人列表分组组件
- matlab算法模型——图的最短路径和距离
- 开心自己的“冒泡排序”被百度百科收录 每一个人都会有梦想,或许不是每一个人,都可以实现自己的梦想,但要永远记得,在我们心里,曾经做过的梦。——To:Hygh
热门文章
- tabbar角标 小程序_【沃行课堂】恭喜你遇到“坑”,小程序踩坑指南
- c语言如何在坐标输出,tc 如何在指定坐标处 输出bmp图片??
- mysql -d -e_mysql常用函数
- linux vi编辑撤销,vi撤销命令(u和U),撤销上一次的操作
- Yarn无法查看日志: Aggregation may not be complete, Check back later or try the nodemanager at xxxx:xxxx
- R语言︱R社区的简单解析(CRAN、CRAN Task View)
- 第六章_循环神经网络(RNN)
- linux 超好用的命令行工具
- 笔试编程题常用的一些技巧方法
- sersync实时备份安装及设置