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 08 Redis
详解Redis瘦身指南
May 26 Redis
Java Socket实现Redis客户端的详细说明
May 26 Redis
详解Redis复制原理
Jun 04 Redis
Redis RDB技术底层原理详解
Sep 04 Redis
Jedis操作Redis实现模拟验证码发送功能
Sep 25 Redis
redis的list数据类型相关命令介绍及使用
Jan 18 Redis
Redis中有序集合的内部实现方式的详细介绍
Mar 16 Redis
Redis调用Lua脚本及使用场景快速掌握
Mar 16 Redis
Redis入门基础常用操作命令整理
Jun 01 Redis
利用Redis实现点赞功能的示例代码
Jun 28 Redis
Redis+AOP+自定义注解实现限流
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
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
Ajax+PHP 边学边练之四 表单
2009/11/27 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
javascript forEach通用循环遍历方法
2010/10/11 Javascript
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
利用cookie记住背景颜色示例代码
2013/11/04 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
详解vue v-model
2020/08/31 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
python 类详解及简单实例
2017/03/24 Python
基于python socketserver框架全面解析
2017/09/21 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
django迁移数据库错误问题解决
2019/07/29 Python
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
Uber Eats台湾:寻找附近提供送餐服务的餐厅
2018/05/07 全球购物
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
大学生专业个人学习的自我评价
2013/10/26 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
教师个人年终总结
2015/02/11 职场文书
保卫工作个人总结
2015/03/03 职场文书
离婚撤诉申请书范本
2015/05/18 职场文书
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
2022/06/28 Oracle