服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Redis - Redis批量生成数据的实现

Redis批量生成数据的实现

2022-10-21 16:15Java面试365 Redis

本文主要介绍了Redis批量生成数据的实现,主要介绍了两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Redis批量生成数据

从研究Redis开始,一直会有一些Redis键值数量或者键值大小的场景要求,显然我们不可能一条一条记录的插入,那不是人都要没了,下面介绍两种方法。

Redis自带Debug方法

redis提供的debug命令可以自己研究下,里面涉及到模拟redis异常场景如oom、宕机、命令执行失败,redis重载rdb文件、aof文件,模拟redis命令耗时等等,我们可以通过DEBUG help查看详情,如下所示

Redis批量生成数据的实现

这里需要用到的就是debug populate命令,使用如下所示

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#### 后面数量代表创建多少个键值
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数据,如下所示

?
1
2
3
4
5
6
7
8
9
10
### 如果使用默认端口可以直接采用以下命令,如果不是默认端口或默认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

?
1
2
3
4
5
6
7
8
9
10
11
#!/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的测试数据

?
1
2
3
4
5
6
7
8
9
#!/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批量生成数据内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/zzf1233/article/details/124645169

延伸 · 阅读

精彩推荐
  • RedisRedis中统计各种数据大小的方法

    Redis中统计各种数据大小的方法

    这篇文章主要介绍了Redis中统计各种数据大小的方法,本文使用PHP实现统计Redis内存占用比较大的键,需要的朋友可以参考下 ...

    Redis技术网2872019-10-23
  • Redis分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了

    分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了

    Zookeeper的机制可以保证分布式锁实现业务代码简单,成本低,Redis如果要解决分布式锁的问题,对于一些复杂的情况,很难解决,成本较高,这篇文章重点...

    宇的季节9342021-08-05
  • RedisRedis分布式锁解决秒杀超卖问题

    Redis分布式锁解决秒杀超卖问题

    本文主要介绍了Redis分布式锁解决秒杀超卖问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面...

    艳梓9432022-07-13
  • RedisRedis 新特性篇:多线程模型解读

    Redis 新特性篇:多线程模型解读

    在一个普通的 Linux 系统上,Redis 通过使用pipelining 每秒可以处理 100 万个请求,所以如果应用程序主要使用 O(N) 或O(log(N)) 的命令,它几乎不会占用太多 CP...

    码哥字节12092021-08-10
  • RedisRedis:我是如何与客户端进行通信的

    Redis:我是如何与客户端进行通信的

    我是一个Redis服务,最引以为傲的就是我的速度,我的 QPS 能达到10万级别。在我的手下有数不清的小弟,他们会时不时到我这来存放或者取走一些数据,我...

    码农参上11302021-06-22
  • Redis基于redis实现的点赞功能设计思路详解

    基于redis实现的点赞功能设计思路详解

    点赞是我们现在经常见到的一个效果,如朋友圈、微博都有点赞的效果,下面这篇文章主要跟大家分享了基于redis实现的点赞功能设计思路的相关资料,文...

    Furion5782019-11-05
  • RedisRedis学习教程之命令的执行过程详解

    Redis学习教程之命令的执行过程详解

    这篇文章主要给大家介绍了关于Redis学习教程之命令的执行过程的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学...

    Zhengxin Diao2642019-11-12
  • Redis浅谈Redis中的RDB快照

    浅谈Redis中的RDB快照

    虽说Redis是内存数据库,但是它为数据的持久化提供了两个技术,分别是AOF日志和RDB快照。这两种技术都会用各用一个日志文件来记录信息,但是记录的内...

    小林coding7992021-08-12