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三种高可用方式部署的实现
May 11 Redis
Redis Cluster集群动态扩容的实现
Jul 15 Redis
浅谈Redis位图(Bitmap)及Redis二进制中的问题
Jul 15 Redis
redis 存储对象的方法对比分析
Aug 02 Redis
详解redis在微服务领域的贡献
Oct 16 Redis
Redis高并发防止秒杀超卖实战源码解决方案
Nov 01 Redis
关于SpringBoot 使用 Redis 分布式锁解决并发问题
Nov 17 Redis
聊聊redis-dump工具安装问题
Jan 18 Redis
Redis基本数据类型哈希Hash常用操作命令
Jun 01 Redis
Redis+AOP+自定义注解实现限流
Jun 28 Redis
python中使用redis用法详解
Dec 24 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中extract()函数的妙用分析
2012/07/11 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
一个网马的tips实现分析
2010/11/28 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
javascript中this用法实例详解
2017/04/06 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
Python基于sftp及rsa密匙实现远程拷贝文件的方法
2016/09/21 Python
python将ansible配置转为json格式实例代码
2017/05/15 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
python函数定义和调用过程详解
2020/02/09 Python
加拿大著名时装品牌:SOIA & KYO
2016/08/23 全球购物
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
阿玛尼美妆英国官网:Giorgio Armani Beauty英国
2019/03/28 全球购物
澳大利亚个性化儿童礼品网站:Bright Star Kids
2019/06/14 全球购物
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
史上最全面的Java面试题汇总!
2015/02/03 面试题
银行实习生的自我评价
2013/12/09 职场文书
毕业生护理专业个人求职信范文
2014/01/04 职场文书
小班重阳节活动方案
2014/02/08 职场文书
一份创业计划书范文
2014/02/08 职场文书
大型活动组织方案
2014/05/10 职场文书
党员演讲稿
2014/09/04 职场文书
给校长的建议书范文
2015/09/14 职场文书
详解MySQL主从复制及读写分离
2021/05/07 MySQL
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android