如果使用redis的频次较高,那么业务中经常会出现需要根据关键字进行批量查询,所以总结一下StackExchange中使用批量查询的方法(如果数据量很大,那么在redis中模糊查询很耗时,请慎用!)

初始化redis连接对象:

string _connectionString = ConfigurationManager.ConnectionStrings["RedisConnectionString"].ConnectionString;

ConnectionMultiplexer _connMultiplexer = ConnectionMultiplexer.Connect(_connectionString);

IDataBase _db = _connMultiplexer.GetDatabase(db);

  

通过 keys或scan查找出匹配的key,StackExchange.Redis 中调用 keys/scan/size/flush/save/集群 等命令须使用 IServer 对象

 

var _server = _connMultiplexer.GetServer(_connMultiplexer.GetEndPoints()[0]); //默认一个服务器

var pattern = "keyword*";

var keys = _server.Keys(database: _db.Database, pattern: pattern); //StackExchange.Redis 会根据redis版本决定用keys还是   scan(>2.8) 

return _db.KeyDelete(keys.ToArray()); //删除一组key

  

如果数据量很大(比如几十万个key),为了提高效率,可以通过Lua脚本进行模糊查询的批量操作

var pattern = "keyword*";

var redisResult = _db.ScriptEvaluateAsync(LuaScript.Prepare(

//Redis的keys模糊查询:

" local res = redis.call(‘KEYS‘, @keypattern) " +

" return res "), new { @keypattern = pattern });

if (!redisResult.IsNull) {
  _db.KeyDelete((string[])redisResult); //删除一组key }

  

最新文章

  1. 阿里云本地FTP怎么连接?通用win7,win8,win8.1,win10
  2. mysql-netstat
  3. go 语言的库文件放在哪里?如何通过nginx代理后还能正确获取远程地址
  4. TCP
  5. [转]常用电器认证标志 && 手机频段
  6. android中关闭软键盘
  7. UVA 100 The 3*n+1 problem
  8. 从零开始学C++之虚函数与多态(二):纯虚函数、抽象类、虚析构函数
  9. 【CodeForces】【#286】Div.2
  10. Cocos2d-x优化中关于背景图片优化
  11. jQuery each的实现与call方法的详细介绍
  12. 3 weekend110的配置hadoop(格式化) + 一些问题解决 + 未免密码配置
  13. 解决CentOS(RedHat)中sendmail和sm-client启动慢故障(转)
  14. openjpa框架入门_openbooks项目Overview(四)
  15. Hibernate 数据的批量插入、更新和删除
  16. Make a dent in the universe
  17. 百度在线编辑器 - PHP获取提交的数据
  18. java.lang.Thread、java.lang.ThreadGroup和java.lang.ThreadLocal<T>详细解读
  19. POJ3013-Big Christmas Tree-最短路
  20. 使用WinPcap(SharpPcap)实现ARP抓包以实现设备IP搜索功能

热门文章

  1. HTTP 400错误--请求无效
  2. 细数Linux的文件权限
  3. golang设置title并获取窗口句柄
  4. spring框架-jdbc
  5. 拒绝QQ空间-手把手教你美化博客
  6. 详解docker中容器devicemapper设备的挂载流程
  7. 第一次跑eureka
  8. python链接mysql获得某列最大值
  9. Qt对象树
  10. js打印html指定元素,解决动态获取的图片无法打印问题