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通过6379端口无法连接服务器(redis-server.exe闪退)
May 08 Redis
Windows下redis下载、redis安装及使用教程
Jun 02 Redis
k8s部署redis cluster集群的实现
Jun 24 Redis
redis使用不当导致应用卡死bug的过程解析
Jul 01 Redis
浅谈Redis位图(Bitmap)及Redis二进制中的问题
Jul 15 Redis
在项目中使用redis做缓存的一些思路
Sep 14 Redis
Redis中缓存穿透/击穿/雪崩问题和解决方法
Dec 04 Redis
解决 Redis 秒杀超卖场景的高并发
Apr 12 Redis
解决 redis 无法远程连接
May 15 Redis
Redis 报错 error:NOAUTH Authentication required
May 15 Redis
Redis入门基础常用操作命令整理
Jun 01 Redis
Redis实现短信验证码登录的示例代码
Jun 14 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
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
php 操作调试的方法
2012/07/12 PHP
Linux下安装PHP MSSQL扩展教程
2014/10/24 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
关于jQuery判断元素是否存在的问题示例探讨
2014/07/21 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
2015/10/29 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
Python之父谈Python的未来形式
2016/07/01 Python
python操作mysql数据库
2017/03/05 Python
Python实现的用户登录系统功能示例
2018/02/05 Python
pip命令无法使用的解决方法
2018/06/12 Python
python连接PostgreSQL过程解析
2020/02/09 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
基于Python实现简单学生管理系统
2020/07/24 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
给领导的检讨书
2014/02/16 职场文书
525心理活动总结
2014/07/04 职场文书
房屋所有权证明
2014/10/20 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
团代会开幕词
2015/01/28 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
小学毕业教师寄语
2019/06/21 职场文书
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL