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 相关文章推荐
详解RedisTemplate下Redis分布式锁引发的系列问题
Apr 27 Redis
详解Redis集群搭建的三种方式
May 31 Redis
解析高可用Redis服务架构分析与搭建方案
Jun 20 Redis
浅谈redis整数集为什么不能降级
Jul 25 Redis
基于Redis的List实现特价商品列表功能
Aug 30 Redis
使用redis实现延迟通知功能(Redis过期键通知)
Sep 04 Redis
解决 Redis 秒杀超卖场景的高并发
Apr 12 Redis
Redis高并发缓存架构性能优化
May 15 Redis
Redis入门基础常用操作命令整理
Jun 01 Redis
Redis批量生成数据的实现
Jun 05 Redis
redis lua限流算法实现示例
Jul 15 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
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
2017/05/05 星际争霸
第十五节--Zend引擎的发展
2006/11/16 PHP
php读取javascript设置的cookies的代码
2010/04/12 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
php面象对象数据库操作类实例
2014/12/02 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
2016/07/06 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
js setTimeout opener的用法示例详解
2013/10/23 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
2014/04/25 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
Vue使用vue-cli创建项目
2017/09/01 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
Vue的Options用法说明
2020/08/14 Javascript
python定时器使用示例分享
2014/02/16 Python
python中使用urllib2伪造HTTP报头的2个方法
2014/07/07 Python
python win32 简单操作方法
2017/05/25 Python
python实现图片上添加图片
2019/11/26 Python
颇特女士香港官网:NET-A-PORTER香港
2021/03/08 全球购物
电子商务应届生求职信
2013/11/16 职场文书
教师节商场活动方案
2014/02/13 职场文书
意向书范文
2014/03/31 职场文书
协议书怎么写
2014/04/21 职场文书
应急处置方案
2014/06/16 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
店面出租协议书范本
2014/11/28 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
关于迟到的检讨书
2015/05/06 职场文书
小学教育见习总结
2015/06/23 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
python通过opencv调用摄像头操作实例分析
2021/06/07 Python