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持久化与主从复制的实践
Apr 27 Redis
redis 限制内存使用大小的实现
May 08 Redis
基于Redis位图实现用户签到功能
May 08 Redis
详解Redis复制原理
Jun 04 Redis
嵌入式Redis服务器在Spring Boot测试中的使用教程
Jul 21 Redis
浅谈Redis的keys命令到底有多慢
Oct 05 Redis
Redis命令处理过程源码解析
Feb 12 Redis
redis数据结构之压缩列表
Mar 21 Redis
使用Redis做预定库存缓存功能
Apr 02 Redis
muduo TcpServer模块源码分析
Apr 26 Redis
Redis高并发缓存架构性能优化
May 15 Redis
浅谈Redis变慢的原因及排查方法
Jun 21 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
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
PHP实现WebService的简单示例和实现步骤
2015/03/27 PHP
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
PHP常量define和const的区别详解
2019/05/18 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
简单实现js鼠标跟随效果
2020/08/02 Javascript
理解 JavaScript EventEmitter
2018/03/29 Javascript
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
详解Vue取消eslint语法限制
2018/08/04 Javascript
vue框架下部署上线后刷新报404问题的解决方案(推荐)
2019/04/03 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
在双python下设置python3为默认的方法
2018/10/31 Python
Python中的self用法详解
2019/08/06 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
2019/11/11 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
教育系毕业生中文求职信范文
2013/10/06 职场文书
商务英语专业毕业生自荐信
2013/11/05 职场文书
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
《猴子种树》教学反思
2014/02/14 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技
vue使用refs获取嵌套组件中的值过程
2022/03/31 Vue.js