架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6474|回复: 5

[资料] 【实战】.NET/C# 使用 StackExchange.Redis 模糊查询导出缓存

[复制链接]
发表于 2022-2-13 12:50:33 | 显示全部楼层 |阅读模式
需求:需要通过通配符从 Redis 缓存中导出一些数据,方便排查问题。.NET/C# 使用 StackExchange.Redis 客户端来操作 Redis 缓存,导出成 txt 文件到本地磁盘中。原理是通过 SCAN 命令筛选出所有 key,然后在查询每一个 key 的值。

Redis 中的 KEYS命令一次性返回所有匹配的key,当 redis 中的 key 非常多时,对于内存的消耗和 redis 服务器都是一个隐患,对于Redis 2.8 以上版本给我们提供了一个更好的遍历key的命令 SCAN。

SCAN 每次执行都只会返回少量元素,所以可以用于生产环境,而不会出现像 KEYS 或者 SMEMBERS 命令带来的可能会阻塞服务器的问题。

SCAN命令是一个基于游标的迭代器。这意味着命令每次被调用都需要使用上一次这个调用返回的游标作为该次调用的游标参数,以此来延续之前的迭代过程

当SCAN命令的游标参数(即cursor)被设置为 0 时, 服务器将开始一次新的迭代, 而当服务器向用户返回值为 0 的游标时, 表示迭代已结束。

回顾:

.NET/C# 操作 Redis 无序集合
https://www.itsvse.com/thread-9622-1-1.html

.net/c# 操作redis缓存增删改查[源码]
https://www.itsvse.com/thread-4068-1-1.html

首先,我们向 Redis 插入 10 万条 User:GUID 格式的数据,如下图:

QQ截图20220213124737.jpg

.NET/C# 使用 StackExchange.Redis 模糊查询“User:*”数据并以 txt 文件输出到本地磁盘,源码如下:

效果图如下:

QQ截图20220213125000.jpg QQ截图20220213125124.jpg

(完)





上一篇:【实战】MongoDB 查看索引和创建索引
下一篇:【实战】前端 JS 解决 JSON 序列化精度丢失问题
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-2-13 16:28:07 | 显示全部楼层
又来看看。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-2-14 17:44:42 | 显示全部楼层
学习学习
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-3-8 08:55:18 | 显示全部楼层
学习学习 hhhhh
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-6-20 22:40:27 | 显示全部楼层
来看看大佬的解决方案 嘻嘻嘻嘻
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-2-25 16:29:07 | 显示全部楼层
刚好要用到,谢谢楼主
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-27 01:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表