理论基础部分:http://www.redis.cn/topics/mass-insert.html

几百上千万的数据建议使用pipe来完成导入。

1.windows 下数据导入命令:

type output.data | C:\Redis\redis-cli.exe -h "127.0.0.1" -p 6379 -a password --pipe

注意 : --help 可以查看相关的命令,  -n [db] 是转到相关的数据库  如: -n 3

2.生成文件相关的代码  C#

 FileStream fs = null;
if (!Directory.Exists(mroot))//如果不存在就创建文件夹
Directory.CreateDirectory(mroot);
if (!File.Exists(filepath))
fs = File.Create(filepath);//创建该文件
if (fs == null)
fs = new FileStream(filepath, FileMode.Append); StreamWriter sw = new StreamWriter(fs);
foreach (var ms in msg)
{
//开始写入
var addstr = "*"+ (ms.Vals.Count +) + "\r\n" +
"$"+ GetStrByte(ms.Command)+"\r\n"+ms.Command+"\r\n";
foreach (var vv in ms.Vals)
{
addstr += "$" + GetStrByte(vv) + "\r\n" + vv+"\r\n";
} sw.Write(addstr);
} //清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();

语句初始化:

            List<RedisProtol> addCom = new List<RedisProtol>();

            foreach (var kv in keyValues)
{
//addCom.Add($"HSET {kv.Key} {kv.Value.Name} {kv.Value.Value}");
var pro = new RedisProtol(); pro.Command = "HSET";
pro.Vals.Add(kv.Key);
pro.Vals.Add(kv.Value.Name);
pro.Vals.Add(kv.Value.Value);
addCom.Add(pro);
}
FileSupport.Instance.RedisProWrite(addCom, filename);

注意几点:

1)计算长度时用的是字节长度,不是字符长度,如果导入的数据中有中文特别要注意,并且要注意字符的编码问题:

2)生成的文件格式如下(注意回车和换行):

												

Redis 数据总结(1 数据导入)的更多相关文章

  1. redis的几种数据导入导出方式【转】

    环境说明:202.102.221.11 redis源实例202.102.221.12 redis目标实例202.102.221.13 任意linux系统 一.redis-dump方式 1.安装redi ...

  2. 用redis-dump工具对redis集群所有数据进行导出导入

    安装redis-dump redis-dump是基于ruby开发,需要ruby环境,而且新版本的redis-dump要求2.2.2以上的ruby版本,centos中yum只能安装2.0版本的ruby. ...

  3. Redis数据的导出和导入(dump和load方式)

    迁移redis数据一般有如下3种方式: 第三方工具redis-dump,redis-load aof机制,需要开启aof功能 rdb存储机制 这里介绍第一种方式,通过redis-dump导出数据,再通 ...

  4. redis增删查改数据Util

    目录 (1)需要导入的包 (2)redis配置文件 (3)RedisUtil类 (1)需要导入的包 <dependency> <groupId>org.springframew ...

  5. pythone函数基础(12)连接Redis,写数据,读数据,修改数据

    需要导入Resdis模块 import redisip = '127.0.0.1'password='123456'r = redis.Redis(host=ip,password=password, ...

  6. 基于Python项目的Redis缓存消耗内存数据简单分析(附详细操作步骤)

    目录 1 准备工作 2 具体实施   1 准备工作 什么是Redis? Redis:一个高性能的key-value数据库.支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使 ...

  7. 大数据学习day34---spark14------1 redis的事务(pipeline)测试 ,2. 利用redis的pipeline实现数据统计的exactlyonce ,3 SparkStreaming中数据写入Hbase实现ExactlyOnce, 4.Spark StandAlone的执行模式,5 spark on yarn

    1 redis的事务(pipeline)测试 Redis本身对数据进行操作,单条命令是原子性的,但事务不保证原子性,且没有回滚.事务中任何命令执行失败,其余的命令仍会被执行,将Redis的多个操作放到 ...

  8. Redis学习总结(1)——数据持久化

    以前研究Redis的时候,很多东西都不太明白,理解得也不太深,现在有时间重新拾起来看看,将一些心得记录下来,希望和大家一起探讨. 一.简介 Redis是一个单线程高可用的Key-Value存储系统,和 ...

  9. 使用OPENROWSET、Microsoft.ACE.OLEDB实现大数据量的高效导入

    首先说明使用的环境是:java和Sqlserver. 最近公司需要进行大数据量的导入操作.原来使用的是Apache POI,虽然可以实现功能,但是因为逻辑处理中需要进行许多校验,处理速度太慢,使用多线 ...

  10. ORACLE使用EXPDP和IMPDP数据泵进行导出导入的方法

    ORACLE使用EXPDP和IMPDP数据泵进行导出导入的方法 (2010-05-28 12:54:34) http://blog.sina.com.cn/s/blog_67d41beb0100ixn ...

随机推荐

  1. 13.python内置模块之re模块

    什么是正则? 正则表达式也称为正则,是一个特殊的字符序列,能帮助检查一个字符串是否与某种模式匹配.可以用来进行验证:邮箱.手机号.qq号.密码.url = 网站地址.ip等.正则不是python语言独 ...

  2. Java基础之六、Java编程思想(8-10)

    八.多态 多态(也称作动态绑定.后期绑定或运行时绑定) 域(成员变量)是不具有多态性的,只有普通的方法调用是多态的,任何域访问操作都将由编译器解析,因此不是多态的 静态方法也是不具有多态性的 publ ...

  3. Redis-位图

    关于位图,可能大家不太熟悉, 那么位图能干啥呢?位图的内容其实就是普通的字符串,也就是byte数组,我们都知道 byte 8 位无符号整数 0 到 255 说个场景.比如你处理一些业务时候,往往会存在 ...

  4. sklearn使用小贴士

    1 sklearn简介 Scikit-learn(sklearn)是机器学习中的第三方模块,封装了常用的机器学习算法,涉及回归.降维.分类以及聚类等,提供python接口. 虽然sklearn容纳的算 ...

  5. OpenCASCADE(一) VS2017+OpenCASCADE+MFC 下载配置安装运行单文档程序画个基本图形

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/12368154.html 一.下载OpenCASCADE 官网下载是: http://www.o ...

  6. Bellman-ford算法 无向图

    // 单源最短路问题 // Bellman-Ford算法 // 复杂度O(V*E) //! 可以判断负圈 #include <cstdio> #include <iostream&g ...

  7. ts中的泛型

    /** * 泛型:软件工程中,我们不仅要创造定义良好的API,同时也要考虑可重用行,组件不仅能 * 够支持当前的数据类型,同时也能够支持未来数据类型. * 通俗理解:泛型就是解决类.接口.方法的复用性 ...

  8. React HOC(高阶组件)

    一.定义 高阶函数:函数接受函数作为输入,或者输出一个函数. 高阶组件:接受React组件作为输入,或是输出一个组件.即hocFactory:: W: React.Component => E: ...

  9. Centos7 防火墙开放端口,查看状态,查看开放端口

    CentOS7 端口的开放关闭查看都是用防火墙来控制的,具体命令如下: 查看防火墙状态:(active (running) 即是开启状态) [root@WSS bin]# systemctl fire ...

  10. c#学习心得(2)

    1.foreach与IEnumerable和IEnumerator的结合使用????? using System; using System.Collections; class Program { ...