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 sentinel 频繁主备切换的问题
Apr 12 Redis
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
May 21 Redis
详解Redis瘦身指南
May 26 Redis
redis哨兵常用命令和监控示例详解
May 27 Redis
Redis Cluster 字段模糊匹配及删除
May 27 Redis
浅谈Redis中的RDB快照
Jun 29 Redis
Redis性能监控的实现
Jul 09 Redis
Redisson实现Redis分布式锁的几种方式
Aug 07 Redis
基于Redis结合SpringBoot的秒杀案例详解
Oct 05 Redis
解决linux下redis数据库overcommit_memory问题
Feb 24 Redis
Redis之RedisTemplate配置方式(序列和反序列化)
Mar 13 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
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
利用PHP自动生成印有用户信息的名片
2016/08/01 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
javascript实现上传图片并预览的效果实现代码
2011/04/11 Javascript
另一个javascript小测验(代码集合)
2011/07/27 Javascript
javascript动画对象支持加速、减速、缓入、缓出的实现代码
2012/09/30 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
2016/12/08 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
vue框架制作购物车小球动画效果实例代码
2019/09/26 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
Windows下搭建python开发环境详细步骤
2020/07/20 Python
Python中字符串的处理技巧分享
2016/09/17 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
Python使用OpenCV进行标定
2018/05/08 Python
Python定时任务sched模块用法示例
2018/07/16 Python
使用Python自动化破解自定义字体混淆信息的方法实例
2019/02/13 Python
python实战串口助手_解决8串口多个发送的问题
2019/06/12 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
苹果台湾官网:Apple台湾
2019/01/05 全球购物
迷你西餐厅创业计划书范文
2013/12/31 职场文书
优良学风班总结材料
2014/02/08 职场文书
初中班干部工作总结
2015/08/10 职场文书
2016银行招聘自荐信
2016/01/28 职场文书
送给客户微信问候语!
2019/07/04 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书