在推荐系统中,推荐候选集格式一般是,itemid  itemid_list。要把itemid作为key,推荐列表作为value批量插入到redis。

比如文件cf.data为:

 cf_763500210    342900215:0.210596124675,372400335:0.209455077845,663500334:0.0450228848833,771300304:0.303416465385
cf_4272909287 0197309320:1.0,1977309242:1.0,2171809288:0.987105477748,4041809109:1.0,4247509287:0.61113311824,4306209287:1.0,4687609332:0.842522148763,5364909320:1.0,7006909116:1.0,7578709264:0.300615689335,9405509328:0.710187812454,9578209232:1.0,9869609287:0.808605591539

在item前加cf,是为了标注此推荐候选集是有CF算法计算得到的。

 cat cf.data | awk -F "\t" '{print "set" " " $1 " " $2}' > cf.insert
 cat cf.insert | /home/app/redis-4.0.9/src/redis-cli --pipe  

这时候会报错,那是字符编码格式问题,我的系统环境是LINUX。提前说一下哦,避免不必要的误会。

 unix2dos data.insert 

此时,可以看到5条数据批量插入成功,0个错误。

如果数据量很大,一次插入可能会报错,那就得做数据分片

 #创建一个临时文件夹tmp
mkdir tmp
cd tmp
cp ../cf.insert cf.insert #将数据拷贝过来
#对文件进行分片处理
split cf.insert
#处理完,把文件删除
rm -rf cf.insert
#用shell脚本执行插入命令
for i in `ls`; do cat $i | /home/app/redis-4.0.9/src/redis-cli --pipe; done;
注意:ls使用Tab键上面的反引号括起来的。
`` 符号在shell里面正式的名称叫做backquote , 一般叫做命令替换
其作用是将引用命令的输出替换到字符串或者变量
通常如果需要在一个序列中用到其它命令的输出,就可以用``

split命令的使用

利用pipeline批量插入数据到redis的更多相关文章

  1. SpringBoot(18)---通过Lua脚本批量插入数据到Redis布隆过滤器

    通过Lua脚本批量插入数据到布隆过滤器 有关布隆过滤器的原理之前写过一篇博客: 算法(3)---布隆过滤器原理 在实际开发过程中经常会做的一步操作,就是判断当前的key是否存在. 那这篇博客主要分为三 ...

  2. mysql利用存储过程批量插入数据

    最近需要测试一下mysql单表数据达到1000W条以上时增删改查的性能.由于没有现成的数据,因此自己构造,本文只是实例,以及简单的介绍. 首先当然是建表: [sql]view plaincopy CR ...

  3. 利用procedure批量插入数据

    正文   要求在页面查询到5000条数据,为了方便插入,准备用shell脚本写curl命令调用自己写的代码接口,但是速度慢,而且写的时候遇到点儿小问题,故用sql语句写了这个功能   由于operat ...

  4. sqlalchemy ORM进阶- 批量插入数据

    参考: https://www.jb51.net/article/49789.htm https://blog.csdn.net/littlely_ll/article/details/8270687 ...

  5. 在Redis集群中使用pipeline批量插入

    在Redis集群中使用pipeline批量插入 由于项目中需要使用批量插入功能, 所以在网上查找到了Redis 批量插入可以使用pipeline来高效的插入, 示例代码如下: Pipeline p = ...

  6. django基础之day08,利用bulk_create 批量插入成千上万条数据

    bulk_create批量插入数据 models.py文件 class Book(models.Model): title=models.CharField(max_length=32) urls.p ...

  7. SQLServer 批量插入数据的两种方法

    SQLServer 批量插入数据的两种方法-发布:dxy 字体:[增加 减小] 类型:转载 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Ins ...

  8. SQL 2005批量插入数据的二种方法

    SQL 2005批量插入数据的二种方法 Posted on 2010-07-22 18:13 moss_tan_jun 阅读(2635) 评论(2) 编辑 收藏 在SQL Server 中插入一条数据 ...

  9. django----Sweetalert bulk_create批量插入数据 自定义分页器

    目录 一.Sweetalert使用AJAX操作 二.bulk_create 三.分页器 divmod 分页器组件 自定义分页器的使用 一.Sweetalert使用AJAX操作 ​ sweetalert ...

随机推荐

  1. ios表单验证帮助类

    // // ValidateHelper.h // #import <Foundation/Foundation.h> @interface ValidateHelper : NSObje ...

  2. Example of Abstract Class

    The Vehicle class has abstract members that must be implemented by the Car class or any other class ...

  3. jar安装

    安装sdk jar 安装到本地 mvn install:install-file -Dfile=F:\workspace\api-cookbook\java\src\main\lib\sdk-1.10 ...

  4. 用Java批量重命名文件

    要事先在C盘里创建“照片”和“照片1”两个文件夹 1import java.io.*; public class Jack { public static void main(String[] arg ...

  5. 1--Jmeter4.0连接Oracle数据库

    一.Jmeter要连接oracle数据库,就必须复制JDBC驱动jar包文件ojdbc5.jar或者ojdbc6.jar到Jmeter的lib目录下 路径:oracle安装目录\jdbc\lib 二. ...

  6. 后台返回json字符串 页面js报错 Uncaught SyntaxError: Unexpected identifier

    后台json字符串是 [{"name": "报销申请", "id": "start"}, {"name&quo ...

  7. React native Configuration with name 'default' not found.

    添加插件后出现异常 FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring ...

  8. c++字符串前几位,后几位的截取

    参考 1. https://blog.csdn.net/haijunsm/article/details/82733584 完

  9. 【leetcode】67-AddBinary

    problem AddBinary code class Solution { public: string addBinary(string a, string b) { string res; ; ...

  10. 数据结构与算法Java描述 队列

    package com.cjm.queue; /** * 数据结构与算法Java实现 队列 * * @author 小明 * */ public class Myqueue { private Nod ...