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
Redis5之后版本的高可用集群搭建的实现
Apr 27 Redis
Redis6.0搭建集群Redis-cluster的方法
May 08 Redis
Redis基于Bitmap实现用户签到功能
Jun 20 Redis
redis使用不当导致应用卡死bug的过程解析
Jul 01 Redis
使用RedisTemplat实现简单的分布式锁
Nov 20 Redis
redis的list数据类型相关命令介绍及使用
Jan 18 Redis
Redis命令处理过程源码解析
Feb 12 Redis
redis 解决库存并发问题实现数量控制
Apr 08 Redis
Redis如何实现验证码发送 以及限制每日发送次数
Apr 18 Redis
浅谈Redis的事件驱动模型
May 30 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
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
nodejs和react实现即时通讯简易聊天室功能
2019/08/21 NodeJs
js实现计算器功能
2020/08/10 Javascript
[01:19:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第二局
2016/03/05 DOTA
Python 12306抢火车票脚本
2018/02/07 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
python中的协程深入理解
2019/06/10 Python
python绘制多个子图的实例
2019/07/07 Python
python3字符串操作总结
2019/07/24 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
Python 存取npy格式数据实例
2020/07/01 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
python Scrapy爬虫框架的使用
2021/01/21 Python
python编程的核心知识点总结
2021/02/08 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
毕业生的自我评价范文
2013/12/31 职场文书
大学专科自荐信
2014/06/17 职场文书
三严三实对照检查材料
2014/08/25 职场文书
作风建设年活动总结
2014/08/27 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
2016年春节慰问信息
2015/03/25 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书