个人博客网:https://wushaopei.github.io/    (你想要这里多有)

这里先进行造数据,向redis中写入五百万条数据,具体方式有如下三种:

方法一:(Lua 脚本) vim redis_load.lua

#!/bin/bash
for i = 1, 100000, 1 do
redis.call(“SET”, “ZzZ MYKEY_ZzZ “..i..”key”, i)
end
return “Ok!”

执行命令: redis-cli —eval redis_load.lua

方法二: (Shell 脚本) vim test.sh

#!/bin/bash
for i in seq 1 100000
do
echo key:${i}=>value:${i}
redis-cli set key:${i} value:${i}
done

方法三:(debug populate)

127.0.0.1:6379> debug populate 100000
OK
(9.12s)

查看数据占用的内存大小: 使用info 命令

# Memory
used_memory:531922952 //数据占用了多少内存(字节 byte)
used_memory_human:1.23M //数据占用了多少内存(带单位的,可读性好)
used_memory_rss:20164608 //redis占用了多少内存
used_memory_rss_human:19.23M
used_memory_peak:531922952 //占用内存的峰 值(字节)
used_memory_peak_human:507.28M //占用内存的峰值(带单位的,可读性好)
total_system_memory:1929056256
total_system_memory_human:1.80G
used_memory_lua:37888 //lua引擎所占用的内存大小(字节)
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:1.03 //内存碎片率
mem_allocator:jemalloc-3.6.0 //redis内存分配器版本,在编译时指定的。有libc、jemalloc、tcmalloc这3种。

环境说明:

Redis 未做任何优化, 单节点    (服务器上, 内存64G).

数据量 :十万条  (预先存入到redis中.)

            数据大小: 1.23M (大约十万条数据)

以下开始读取操作:

第一种方式: 传统读取操作(一次读所有,内存要大,1G以上就可以满足基本要求)

        @Test
public void batchGetNotUsePipeline() {
//指定Redis服务器的IP地址和端口号
Jedis jedis = new Jedis("49.234.197.111", 6379); long start = System.currentTimeMillis(); List<String> list = jedis.lrange("index", 0, 100000); jedis.close();
long end = System.currentTimeMillis();
System.out.println("batchGetNotUsePipeline :读取数据完成===》 插入数据总条数 size : " + list.size() + " total use:"+(end-start)/1000+ "秒" ); }

执行结果:

batchGetNotUsePipeline :读取数据完成===》 插入数据总条数 size : 100000 total use:1秒
2020-01-18 14:02:06.432 INFO 11928 --- [ Thread-2] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'

耗时达到了2秒

方法二:采用pipline 方式:

        @Test
public void batchGetUsePipeline() { long start = System.currentTimeMillis(); //指定Redis服务器的IP地址和端口号
Jedis jedis = new Jedis("49.234.197.103", 6379); Pipeline pipelined = jedis.pipelined(); Response<List<String>> list = pipelined.lrange("index", 0, 200000); pipelined.sync();
jedis.close();
long end = System.currentTimeMillis();
System.out.println("batchGetNotUsePipeline :读取数据完成===》 插入数据总条数 size : " + list.get().size() + " total use:"+(end-start)/1000+ "秒" ); }

pipeLine批量获取数据加快接口响应速度 ,使用管道后的速度约等于1秒

Redis 单节点百万级别数据 读取 性能测试.的更多相关文章

  1. Redis:Java链接redis单节点千万级别数据 写入,读取 性能测试

    本文是对Redis 单节点,针对不同的数据类型,做插入行测试. 数据总条数为:10058624 环境说明:             Redis 未做任何优化, 单节点    (服务器上, 内存64G) ...

  2. Redis单节点数据同步到Redis集群

    一:Redis集群环境准备 1:需要先安装好Redis集群环境并配置好集群 192.168.0.113 7001-7003 192.168.0.162 7004-7006 2:检查redis集群 [r ...

  3. 百万级别数据Excel导出优化

    前提 这篇文章不是标题党,下文会通过一个仿真例子分析如何优化百万级别数据Excel导出. 笔者负责维护的一个数据查询和数据导出服务是一个相对远古的单点应用,在上一次云迁移之后扩展为双节点部署,但是发现 ...

  4. JAVA使用POI如何导出百万级别数据(转)

    https://blog.csdn.net/happyljw/article/details/52809244   用过POI的人都知道,在POI以前的版本中并不支持大数据量的处理,如果数据量过多还会 ...

  5. JAVA使用POI如何导出百万级别数据

    用过POI的人都知道,在POI以前的版本中并不支持大数据量的处理,如果数据量过多还会常报OOM错误,这时候调整JVM的配置参数也不是一个好对策(注:jdk在32位系统中支持的内存不能超过2个G,而在6 ...

  6. JAVA使用POI如何导出百万级别数据(转载)

    用过POI的人都知道,在POI以前的版本中并不支持大数据量的处理,如果数据量过多还会常报OOM错误,这时候调整JVM的配置参数也不是一个好对策(注:jdk在32位系统中支持的内存不能超过2个G,而在6 ...

  7. Redis02——Redis单节点安装

    Redis单节点安装 一.Redis的数据类型 string hash list set zset 二.安装 2.1.下载 wget http://download.redis.io/releases ...

  8. .net core通过多路复用实现单服务百万级别RPS吞吐

    多路复用其实并不是什么新技术,它的作用是在一个通讯连接的基础上可以同时进行多个请求响应处理.对于网络通讯来其实不存在这一说法,因为网络层面只负责数据传输:由于上层应用协议的制订问题,导致了很多传统服务 ...

  9. redhat6.5 redis单节点多实例3A集群搭建

    在进行搭建redis3M 集群之前,首先要明白如何在单节点上完成redis的搭建. 单节点单实例搭建可以参看这个网:https://www.cnblogs.com/butterflies/p/9628 ...

随机推荐

  1. Java 多线程启动为什么调用 start() 方法而不是 run() 方法?

    多线程在工作中多多少少会用到,我们知道启动多线程调用的是 start() 方法,而不是 run() 方法,你知道原因吗? 在探讨这个问题之前,我们先来了解一些多线程的基础知识~ 线程的状态 Java ...

  2. MOS管和三极管开关特性

    不知道对不对? 待续!!!

  3. C# 委托delegate的基本用法

    委托:就是一个方法的类型,下面3个调用情况来详细熟悉一下: 1.调用组合委托 //委托:就是一个方法的类型 public delegate int TestDelegateStr(); public ...

  4. vue 自己写组件。

    最近在网上看到很多大神都有写博客的习惯,坚持写博客不但可以为自己的平时的学习做好记录积累 无意之中也学还能帮助到一些其他的朋友所以今天我也注册一个账号记录一下学习的点滴!当然本人能力实在有限写出的文章 ...

  5. Jenkins 插件 Role Strategy Plugin 使用

    Manage and Assign Roles 1. Manage Roles Global Role 在此处,我们划分了四种权限,分别为: admin:超级管理员角色,管理整个服务: devops: ...

  6. ABAP基础2:数据类型

    数据类型-Data Type:定义程序中可以使用的数据类型,使用前要先定义 数据变量-Data Variable:参照数据类型定义的.可以存储值的变量,就是变量嘛 数据类型 数据类型在ABAP程序中用 ...

  7. jquery.autocomplete的使用-----------------------摘抄别人的

    作者:lxhwss | 2011/10/11 9:46:38 | 阅读43次 document.write(”<script language=javascript src=’/js/2.js’ ...

  8. oracle [精华] 你是否仍迷信rowid分页?

    http://www.itpub.net/thread-1603830-1-1.html

  9. BZOJ 1050并查集+贪心

    1050: [HAOI2006]旅行comf Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3333  Solved: 1851[Submit][St ...

  10. FPGA开发工具套餐搭配推荐及软件链接 (更新于2020.03.16)

    一.Xilinx(全球FPGA市场份额最大的公司,其发展动态往往也代表着整个FPGA行业的动态) (1) Xilinx官方软件下载地址链接: https://china.xilinx.com/supp ...