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 相关文章推荐
Windows下redis下载、redis安装及使用教程
Jun 02 Redis
厉害!这是Redis可视化工具最全的横向评测
Jul 15 Redis
嵌入式Redis服务器在Spring Boot测试中的使用教程
Jul 21 Redis
Redis集群新增、删除节点以及动态增加内存的方法
Sep 04 Redis
Redis读写分离搭建的完整步骤
Sep 14 Redis
使用redis生成唯一编号及原理示例详解
Sep 15 Redis
Redis之RedisTemplate配置方式(序列和反序列化)
Mar 13 Redis
Redis中有序集合的内部实现方式的详细介绍
Mar 16 Redis
Redis如何使用乐观锁(CAS)保证数据一致性
Mar 25 Redis
Redis超详细讲解高可用主从复制基础与哨兵模式方案
Apr 07 Redis
解决 redis 无法远程连接
May 15 Redis
Redis全局ID生成器的实现
Jun 05 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获取数组中某元素的位置及array_keys函数应用
2013/01/29 PHP
解析php5配置使用pdo
2013/07/03 PHP
PHP自毁程序(慎用)
2015/07/09 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
javascript优先加载笔记代码
2008/09/30 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
jQuery调用WebService的实现代码
2011/06/19 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
javascript实现切换td中的值
2014/12/05 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
Javascript将数字转化成为货币格式字符串
2016/06/22 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
Python多线程爬虫简单示例
2016/03/04 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
2017/09/11 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
Python 绘制可视化折线图
2020/07/22 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
html5实现九宫格抽奖可固定抽中某项奖品
2020/06/15 HTML / CSS
医学院四年学习生活的自我评价
2013/11/06 职场文书
打造高效课堂实施方案
2014/03/22 职场文书
公开承诺书格式
2014/05/21 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
mysql外连接与内连接查询的不同之处
2021/06/03 MySQL
python实现会员管理系统
2022/03/18 Python
Python学习之os包使用教程详解
2022/03/21 Python