Redis批量生成数据的实现


Posted in Redis onJune 05, 2022

Redis批量生成数据

从研究Redis开始,一直会有一些Redis键值数量或者键值大小的场景要求,显然我们不可能一条一条记录的插入,那不是人都要没了,下面介绍两种方法。

Redis自带Debug方法

redis提供的debug命令可以自己研究下,里面涉及到模拟redis异常场景如oom、宕机、命令执行失败,redis重载rdb文件、aof文件,模拟redis命令耗时等等,我们可以通过DEBUG help查看详情,如下所示

Redis批量生成数据的实现

这里需要用到的就是debug populate命令,使用如下所示

#### 后面数量代表创建多少个键值
127.0.0.1:6379> DEBUG POPULATE 1000
OK
127.0.0.1:6379> DBSIZE
(integer) 1000
127.0.0.1:6379>
127.0.0.1:6379> info memory
# Memory
used_memory:974368
used_memory_human:951.53K
used_memory_rss:5234688
used_memory_rss_human:4.99M

### 查看生成键值(生成时没有指定默认以key做为前缀)
127.0.0.1:6379> keys *
     1) "key:32201"
     2) "key:59146"
     3) "key:10551"
     ......
127.0.0.1:6379> get key:796
"value:796"

Shell脚本

使用shell脚本前我们需要知道,不用进入redis的命令行我们一样可以插入redis数据,如下所示

### 如果使用默认端口可以直接采用以下命令,如果不是默认端口或默认ip,需要重新指定如下
### redis-cli -c -h 127.0.0.1 -p 7000
[root@zzf993 bin]# ./redis-cli set name zhangsan
OK
### 到redis中查看
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379>
127.0.0.1:6379> get name
"zhangsan"

有了上面的知识,我们造数据就轻而易举了,我们采用shell脚本循环就可以解决问题

批量造1000个键值的key

#!/bin/bash
### 需要转到redis-cli的目录
cd /opt/redis/redis-6.0.6/bin/

for i in {1..10000}
do
  echo "key${i} ${i}"
  ### 如果采用默认端口而且在本机可以这样做,不是默认端口或者本机需要指定
  ### redis-cli -c -h 127.0.0.1 -p 7000
  redis-cli set key${i} ${i}
done

造一个bigkey的测试数据

#!/bin/bash
### 需要转到redis-cli的目录
cd /opt/redis/redis-6.0.6/bin/

for i in {1..10000}
do
  echo "key${i} ${i}"
  redis-cli  hset obj  key${i} ${i}
done

使用shell脚本时需要注意,需要保证当前用户有可执行权限,如果不太情况的可以直接赋予所有权限如下所示

Redis批量生成数据的实现

到此这篇关于Redis批量生成数据的实现的文章就介绍到这了,更多相关Redis批量生成数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Redis 相关文章推荐
redis限流的实际应用
Apr 24 Redis
Redis数据结构之链表与字典的使用
May 11 Redis
浅谈redis缓存在项目中的使用
May 20 Redis
Redis集群的关闭与重启操作
Jul 07 Redis
Redis如何实现分布式锁
Aug 23 Redis
在项目中使用redis做缓存的一些思路
Sep 14 Redis
关于SpringBoot 使用 Redis 分布式锁解决并发问题
Nov 17 Redis
关于使用Redisson订阅数问题
Jan 18 Redis
基于Redis6.2.6版本部署Redis Cluster集群的问题
Apr 01 Redis
redis sentinel监控高可用集群实现的配置步骤
Apr 01 Redis
Redis高并发缓存架构性能优化
May 15 Redis
浅谈Redis缓冲区机制
Jun 05 Redis
Redis实现订单过期删除的方法步骤
Jun 05 #Redis
浅谈Redis缓冲区机制
Redis全局ID生成器的实现
Jun 05 #Redis
Redis keys命令的具体使用
Jun 05 #Redis
Redis入门基础常用操作命令整理
Jun 01 #Redis
Redis基本数据类型String常用操作命令
Jun 01 #Redis
Redis基本数据类型List常用操作命令
Jun 01 #Redis
You might like
php intval的测试代码发现问题
2008/07/27 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
使用PHP反射机制来构造"CREATE TABLE"的sql语句
2019/03/21 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
BootStrap使用file-input插件上传图片的方法
2016/09/05 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
js + css实现标签内容切换功能(实例讲解)
2017/10/09 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
python实现远程控制电脑
2019/05/23 Python
详解Python在使用JSON时需要注意的编码问题
2019/12/06 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
python实现ftp文件传输功能
2020/03/20 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
如何一键升级Python所有包
2020/11/05 Python
程序员求职信
2014/04/16 职场文书
化工操作工岗位职责
2014/04/29 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
社区党员干部承诺书
2015/05/04 职场文书
JAVA长虹键法之建造者Builder模式实现
2022/04/10 Java/Android