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 24 Redis
redis实现共同好友的思路详解
May 26 Redis
redis requires ruby version2.2.2的解决方案
Jul 15 Redis
Redis 常见使用场景
Aug 30 Redis
Redis三种集群模式详解
Oct 05 Redis
Redis+Lua脚本实现计数器接口防刷功能(升级版)
Feb 12 Redis
解决redis批量删除key值的问题
Mar 23 Redis
Redis 操作多个数据库的配置的方法实现
Mar 23 Redis
 Redis 串行生成顺序编码的方法实现
Apr 03 Redis
muduo TcpServer模块源码分析
Apr 26 Redis
利用Redis实现点赞功能的示例代码
Jun 28 Redis
redis protocol通信协议及使用详解
Jul 15 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的access操作类
2008/04/09 PHP
关于PHP5 Session生命周期介绍
2010/03/02 PHP
PHP 八种基本的数据类型小结
2011/06/01 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
jquery 查找新建元素代码
2010/07/06 Javascript
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
关于js拖拽上传 [一个拖拽上传修改头像的流程]
2011/07/13 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
Ionic学习日记实现验证码倒计时
2018/02/08 Javascript
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
vue之延时刷新实例
2019/11/14 Javascript
javascript实现电商放大镜效果
2020/11/23 Javascript
利用JavaScript模拟京东按键输入功能
2020/12/01 Javascript
python快速建立超简单的web服务器的实现方法
2018/02/17 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
Python 点击指定位置验证码破解的实现代码
2019/09/11 Python
Python 定义只读属性的实现方式
2020/03/05 Python
python中导入 train_test_split提示错误的解决
2020/06/19 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
美国网上书店:Barnes & Noble
2018/08/15 全球购物
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
编程输出如下图形
2013/11/24 面试题
数学专业毕业生自荐信
2013/11/10 职场文书
工会主席岗位责任制
2014/02/11 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
教师求职信怎么写
2015/03/20 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
python tqdm用法及实例详解
2021/06/16 Python