当前位置: 首页 > news >正文

c#分页_用 C# 写一个 Redis 数据同步小工具

用 C# 写一个 Redis 数据同步小工具

Intro

为了实现 redis 的数据迁移而写的一个小工具,将一个实例中的 redis 数据同步到另外一个实例中。(原本打算找一个已有的工具去做,找了一个 nodejs 的小工具,结果折腾了好久都没装上。。。于是就自己写了这个小工具)

之所以自己写一个工具而不是利用 redis 备份机制来实现,主要是因为我们用的是 redis 云服务,不能像自己的服务器一样 SSH 上去一顿操作,要把云服务的 redis 数据同步到自己服务器上的 redis 实例。

基本使用

配置解读

{

"AppSettings": {

"SyncDatabases": "0,1",

"BatchSize": 50

},

"ConnectionStrings": {

"Source": "redis1:6379,asyncTimeout=30000,syncTimeout=30000",

"Dest": "redis2:6379,password=123433,asyncTimeout=30000,syncTimeout=30000"

}

}

  • AppSettings:SyncDatabases是要同步的 redis 数据库,多个数据库用英文的逗号分隔

  • AppSettings:BatchSize 是每次从源 redis 服务器读取 N 个 key(分页读取,每页 N 个)

  • ConnectionStrings:Source 代表了源 redis 服务器连接字符串

  • ConnectionStrings:Dest 代表了目标 redis 服务器连接字符串

redis 连接字符串详细参数可以参考文档:https://weihanli.github.io/StackExchange.Redis-docs-zh-cn/Configuration.html

执行迁移

修改 redis 配置之后(根据自己要同步数据量的大小设置超时时间),在项目根目录下运行 dotnet run 即可,

Sample Run

1156c97ae8a46dbd2a8d1e9652afa415.png

More

支持同步/迁移的数据类型:

  • String

  • Hash

  • List

  • Set

  • ZSet(SortedSet)

实现源码:https://github.com/WeihanLi/SamplesInPractice/tree/master/RedisCopy

Reference

  • https://github.com/WeihanLi/SamplesInPractice/tree/master/RedisCopy

  • https://weihanli.github.io/StackExchange.Redis-docs-zh-cn/Configuration.html

相关文章:

  • 一年小结
  • cmfclistctrl设置单行文字颜色_IntelliJ IDEA 超全优化设置,效率杠杠的!
  • Automatic Update prompting to download KB890859 again and again?
  • jsp登录功能的实现_3-2【微信小程序全栈开发课程】登录功能(一)--实现登录功能
  • 《Spring 2.0核心技术与最佳实践》即将上市
  • 兵法:掌上千秋史 胸中百万兵
  • go语言怎么 控制一个变量输入的范围_go 学习笔记之值得特别关注的基础语法有哪些...
  • 颜率护鼎:读《战国策:秦兴师临周章》有感
  • python函数手册 stata_Python与Stata数据交互之时间变量
  • 知音少,弦断有谁听
  • python server酱_Python3和Server酱实现微信通知
  • 潜龙勿用,蓄积待用
  • python 不等于None 不等于空_python中输入0.1+0.2结果却不等于0.3?原来编程语言是这么算的……...
  • ihtml2document能不能根据id获取dom_javascript的DOM对象
  • 《高级分形艺术——核心算法、软件实现及创作技巧》
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • Django 博客开发教程 8 - 博客文章详情页
  • Druid 在有赞的实践
  • es6--symbol
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • JavaScript 一些 DOM 的知识点
  • JavaScript服务器推送技术之 WebSocket
  • mockjs让前端开发独立于后端
  • mysql 数据库四种事务隔离级别
  • Python十分钟制作属于你自己的个性logo
  • React-flux杂记
  • Terraform入门 - 1. 安装Terraform
  • ubuntu 下nginx安装 并支持https协议
  • webgl (原生)基础入门指南【一】
  • 测试如何在敏捷团队中工作?
  • 关于 Cirru Editor 存储格式
  • 基于 Babel 的 npm 包最小化设置
  • 排序(1):冒泡排序
  • 算法---两个栈实现一个队列
  • 算法之不定期更新(一)(2018-04-12)
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 译自由幺半群
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​iOS实时查看App运行日志
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #162 (Div. 2)
  • (02)vite环境变量配置
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (9)STL算法之逆转旋转
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (办公)springboot配置aop处理请求.
  • (备忘)Java Map 遍历
  • (第61天)多租户架构(CDB/PDB)
  • (一)认识微服务
  • (已解决)什么是vue导航守卫
  • **python多态
  • .axf 转化 .bin文件 的方法