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 24 Redis
redis通过6379端口无法连接服务器(redis-server.exe闪退)
May 08 Redis
基于Redis位图实现用户签到功能
May 08 Redis
解析高可用Redis服务架构分析与搭建方案
Jun 20 Redis
redis requires ruby version2.2.2的解决方案
Jul 15 Redis
使用redis实现延迟通知功能(Redis过期键通知)
Sep 04 Redis
Redis Stream类型的使用详解
Nov 11 Redis
redis sentinel监控高可用集群实现的配置步骤
Apr 01 Redis
Redis 异步机制
May 15 Redis
Redis基本数据类型Set常用操作命令
Jun 01 Redis
Redis基本数据类型List常用操作命令
Jun 01 Redis
Redis基本数据类型String常用操作命令
Jun 01 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
CentOS安装php v8js教程
2015/02/26 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
禁止js文件缓存的代码
2010/04/09 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
js 获取(接收)地址栏参数值的方法
2013/04/01 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
2016/08/25 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
微信小程序 聊天室简单实现
2017/04/19 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
JS实现的字符串数组去重功能小结
2019/06/17 Javascript
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
python进阶之多线程对同一个全局变量的处理方法
2018/11/09 Python
python实现播放音频和录音功能示例代码
2018/12/30 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
2019/08/30 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
怎样自定义一个异常类
2016/09/27 面试题
Java程序员常见面试题
2015/07/16 面试题
材料加工工程求职信
2014/02/19 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
2015年小学生新年寄语
2014/12/08 职场文书
2015国庆节宣传语
2015/07/14 职场文书
JavaScript实现简单图片切换
2021/04/29 Javascript
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL
Linux磁盘管理方法介绍
2022/06/01 Servers