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
Redis实现订单自动过期功能的示例代码
May 08 Redis
redis实现共同好友的思路详解
May 26 Redis
详解缓存穿透击穿雪崩解决方案
May 28 Redis
redis不能访问本机真实ip地址的解决方案
Jul 07 Redis
linux下安装redis图文详细步骤
Dec 04 Redis
Redis调用Lua脚本及使用场景快速掌握
Mar 16 Redis
Redis如何使用乐观锁(CAS)保证数据一致性
Mar 25 Redis
Redis如何实现验证码发送 以及限制每日发送次数
Apr 18 Redis
详解Redis的三种常用的缓存读写策略步骤
May 06 Redis
Redis全局ID生成器的实现
Jun 05 Redis
如何使用注解方式实现 Redis 分布式锁
Jul 23 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实现微信企业转账功能
2018/10/02 PHP
PHP操作XML中XPath的应用示例
2019/07/04 PHP
javaScript call 函数的用法说明
2010/04/09 Javascript
Dojo 学习要点
2010/09/03 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
node.js实现多图片上传实例
2014/06/03 Javascript
JavaScript 基本概念
2015/01/20 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
微信小程序实现拼图小游戏
2020/10/22 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
2017/11/02 Python
Python matplotlib绘图可视化知识点整理(小结)
2018/03/16 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
python2和python3在处理字符串上的区别详解
2019/05/29 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
意大利香水和化妆品购物网站:Parfimo.it
2019/10/06 全球购物
酒店员工检讨书
2014/02/18 职场文书
党员应该树立反腐倡廉的坚定意识思想汇报
2014/09/12 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
大学生考试作弊检讨书1000字
2014/10/14 职场文书
pytorch实现手写数字图片识别
2021/05/20 Python