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复制原理
Jun 04 Redis
springboot使用Redis作缓存使用入门教程
Jul 25 Redis
Redis三种集群模式详解
Oct 05 Redis
redis数据结构之压缩列表
Mar 21 Redis
Redis监控工具RedisInsight安装与使用
Mar 21 Redis
sentinel支持的redis高可用集群配置详解
Apr 01 Redis
浅谈Redis 中的过期删除策略和内存淘汰机制
Apr 03 Redis
Redis实战高并发之扣减库存项目
Apr 14 Redis
windows安装 redis 6.2.6最新步骤详解
Apr 26 Redis
Redis keys命令的具体使用
Jun 05 Redis
Redis配置外网可访问(redis远程连接不上)的方法
Dec 24 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中JSON的使用方法
2015/04/30 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
浅谈Javascript面向对象编程
2011/11/15 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
JS刷新框架外页面七种实现代码
2013/02/18 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
vue2.0使用swiper组件实现轮播效果
2017/11/27 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
详解Python的单元测试
2015/04/28 Python
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
详解python调度框架APScheduler使用
2017/03/28 Python
带你了解python装饰器
2017/06/15 Python
python3 shelve模块的详解
2017/07/08 Python
python中实现字符串翻转的方法
2018/07/11 Python
用python做游戏的细节详解
2019/06/25 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
Scrapy框架介绍之Puppeteer渲染的使用
2020/06/19 Python
Django model class Meta原理解析
2020/11/14 Python
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
什么是类的返射机制
2016/02/06 面试题
音乐专业应届生教师求职信
2013/11/04 职场文书
市场部经理岗位职责
2014/04/10 职场文书
借款担保书范文
2014/05/13 职场文书
幼师求职自荐信
2014/05/31 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书
教师反邪教心得体会
2016/01/15 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书
MySQL 如何分析查询性能
2021/05/12 MySQL
详解Vue router路由
2021/11/20 Vue.js
Spring Boot实现文件上传下载
2022/08/14 Java/Android