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遍历所有key的两个命令(KEYS 和 SCAN)
Apr 12 Redis
Redis性能监控的实现
Jul 09 Redis
redis 存储对象的方法对比分析
Aug 02 Redis
Redis分布式锁Redlock的实现
Aug 07 Redis
Redis集群新增、删除节点以及动态增加内存的方法
Sep 04 Redis
为什么RedisCluster设计成16384个槽
Sep 25 Redis
浅谈Redis的keys命令到底有多慢
Oct 05 Redis
redis数据一致性的实现示例
Mar 18 Redis
基于Redis6.2.6版本部署Redis Cluster集群的问题
Apr 01 Redis
muduo TcpServer模块源码分析
Apr 26 Redis
Redis实现主从复制方式(Master&Slave)
Jun 21 Redis
一文教你快速生成MySQL数据库关系图
Jun 28 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
通过html表格发电子邮件
2006/10/09 PHP
PHP学习 运算符与运算符优先级
2008/06/15 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
smarty中英文多编码字符截取乱码问题解决方法
2014/10/28 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
2014/10/16 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
JS实现网页每隔3秒弹出一次对话框的方法
2015/11/09 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
微信小程序实战之轮播图(3)
2017/04/17 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
在页面中引入js的两种方法(推荐)
2017/08/29 Javascript
vue2.0 路由模式mode="history"的作用
2018/10/18 Javascript
node错误处理与日志记录的实现
2018/12/24 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
JS如何实现动态添加的元素绑定事件
2019/11/12 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
Numpy掩码式数组详解
2018/04/17 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
Python WEB应用部署的实现方法
2019/01/02 Python
Python closure闭包解释及其注意点详解
2019/08/28 Python
python英语单词测试小程序代码实例
2019/09/09 Python
Python学习之路之pycharm的第一个项目搭建过程
2020/06/18 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
美国美妆网站:B-Glowing
2016/10/12 全球购物
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
YOOX台湾:意大利奢侈品电商
2018/10/13 全球购物
创先争优一句话承诺
2014/05/29 职场文书
学生检讨书怎么写
2014/10/09 职场文书
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby