`
heipark
  • 浏览: 2094818 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

redis使用pipeline批量插入hash数据

 
阅读更多
import org.apache.commons.lang.math.RandomUtils;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.Pipeline;

public class RedisEasyTest {

	private static Jedis jedis = new Jedis("xx.xx.xx.xx");

	private static Pipeline p = jedis.pipelined();

	private static int KEY_COUNT = 10000;

	private static int FIELD_COUNT = 10;

	public void single() {
		for (int i = 0; i < KEY_COUNT; i++) {
			String key = RandomUtils.nextInt(5) + "";
			for (int j = 0; j < FIELD_COUNT; j++) {
				jedis.hset(key, j + "", i + j + "");
				jedis.expire(key, 3600);
			}
		}
	}

	public void batch() {
		int index = 0;
		for (int i = 0; i < KEY_COUNT; i++) {
			String key = RandomUtils.nextInt(5) + "";
			for (int j = 0; j < FIELD_COUNT; j++) {
				p.hset(key, j + "", i + j + "");
				p.expire(key, 3600);
			}
			if (++index % 1000 == 0) {
				p.sync();
			}
		}
		p.sync();
	}

	public static void main(String[] args) {
		long start = System.currentTimeMillis();
		RedisEasyTest r = new RedisEasyTest();
		r.single();
		System.out.printf("single use %d sec \n", (System.currentTimeMillis() - start) / 1000);
		start = System.currentTimeMillis();
		r.batch();
		System.out.printf("batch use %d sec \n", (System.currentTimeMillis() - start) / 1000);

	}
}

输出结果:

single use 30 sec
batch use 0 sec

 

可以看到通过pipeline批量插入数据性能是非常不错的。

 

 

--end

 

 

 

分享到:
评论

相关推荐

    python使用pipeline批量读写redis的方法

    标题中的“python使用pipeline批量读写redis的方法”指的是在Python编程环境下,利用Redis数据库的pipeline功能进行高效的数据批量读取和写入操作。这在处理大量数据时能显著提高性能,减少网络通信的延迟。 首先,...

    postgresql数据快速倒入redis

    1. **批量操作**:避免频繁的单条数据插入,而是将多条数据一次性写入Redis。这可以通过使用Redis的MSET或Pipeline功能实现。 2. **多线程/异步处理**:利用C++的多线程或多进程特性,同时处理多个查询结果,提高...

    java 对Redis的导入和导出

    为了提高数据导入导出的效率,可以使用批量操作,如`mset()`和`hmset()`,或者在处理大量数据时开启管道(Pipeline)模式。 5. **安全考虑**: 在实际操作中,应避免在生产环境中直接使用`keys(*)`命令,因为它可能...

    redis使用文档手册

    - 使用pipeline批量处理命令,减少网络通信开销。 10. **安全与备份**: - 设置访问密码,限制客户端连接。 - 定期备份数据,防止数据丢失。 - 监控Redis的内存使用、CPU占用和网络带宽。 通过这份文档手册,...

    Redis实战_Redis实战中文完整版_Redis快速入门_Redis数据类型及操作_Redis常用

    3. **Redis命令操作**:书中会详细介绍每种数据类型的命令,如`SET`、`GET`、`HSET`、`LPOP`、`SADD`、`ZADD`等,以及事务(Transaction)、管道(Pipeline)等高级操作。 4. **Redis持久化**:为了防止数据丢失,...

    redis程序及使用说明

    4. **使用Pipeline**:通过`MULTI`、`EXEC`命令,可以批量发送命令,减少网络通信开销。 管理Redis: 1. **监控**:使用`INFO`命令获取服务器状态信息,包括内存使用、客户端连接数等。 2. **备份与恢复**:可以...

    redis代码示例

    4. 使用适当的命令优化读写性能,如批量操作和管道(Pipeline)。 5. 对于敏感数据,应加密后再存储到Redis。 通过这个"redis代码示例",你可以学习如何在实际项目中应用Redis,并掌握基本的Redis操作。在实践中,...

    redis合集,redis学习及面试资料

    2. Redis性能优化:包括合理配置内存大小、选择合适的持久化策略、避免全量扫描操作、利用Redis的Pipeline批量处理命令等。 3. Redis的内存管理:了解Redis如何管理内存,如通过LRU(Least Recently Used)算法淘汰...

    redisUtils工具类的使用

    4. **哈希操作**:处理Hash数据结构,如添加、获取、删除单个字段,或者整个Hash对象,同时支持批量操作。 5. **列表操作**:对List数据结构进行操作,如左推(lpush)、右推(rpush)、获取指定范围的元素(lrange...

    Redis从入门到精通2024版 视频教程 下载 百度网盘链接4.zip

    │ 23.Redis 中使用 GeoHash.mp4 │ 24.Redis 之 Scan[简单介绍].mp4 │ 25.Redis 之 Scan[基本用法].mp4 │ 26.Redis 之 Scan[基本原理].mp4 │ 27.Redis 之 Scan[其他命令].mp4 │ ├─第 05 章 深入理解 ...

    Redis培训资料.pptx

    除了上述基础操作,Redis还提供了Set(集合)、List(列表)、Sorted Set(有序集合)等数据结构,以及Pub/Sub(发布/订阅)、Pipeline(批量操作)等高级功能,使得它在多种场景下都能发挥出色性能。学习和熟练掌握...

    redis 适用场景与实现

    了解Redis的数据类型实现、优化持久化机制、合理进行容量规划、选择合适的使用场景、调整相关参数对于构建稳定高效的Redis系统至关重要。同时,随着技术的发展,Redis也在不断地进行更新迭代,以适应日益增长的数据...

    redis-5.1.1-7.4

    使用Redis时要注意性能优化,例如合理设置过期时间,避免阻塞操作,以及使用pipeline批量处理命令以减少网络通信次数。 7. **故障转移和集群**: 如果你的应用需要高可用性和可扩展性,可以考虑使用Redis ...

    Spring mvc整合redis实例(redis连接池)

    为了支持事务,可以使用`RedisTemplate`的`executePipelined`方法,它可以批量执行命令并确保原子性。 ```java @Autowired private RedisTemplate, Object&gt; redisTemplate; @Transactional public void ...

    redis-cache-mybatis

    9. **性能优化**:为了最大化利用Redis的性能,我们可以采用批量操作、Pipeline或Transaction来减少网络IO开销,同时,合理设计数据结构(如使用Set、Hash等数据类型)也能提高效率。 通过以上步骤,我们可以有效地...

    使用.Net 技术操作Redis缓存技术,对Redis缓存进行存储增删改查等相关操作

    1. **存储数据**:Redis支持多种数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。例如,存储一个字符串键值对: ```csharp var db = redis.GetDatabase(); db...

    Redis思维导图及课件

    理解如何优化配置,比如限制客户端连接数,合理设置缓存过期时间,以及利用pipeline批量处理命令,都是提高Redis性能的关键。 10. **安全性**:Redis默认未开启认证,为了安全,应当设置密码,并限制只接受本地连接...

    redis基础使用说明文档

    - **管道(Pipeline)**:批量发送命令,减少网络通信开销。 4. **数据持久化** - **RDB(AOF)**:Redis默认支持两种持久化方式。RDB定期保存当前数据库状态,恢复速度快;AOF记录所有写操作日志,恢复完整但速度较...

    redis学习笔记.pdf

    内部存储可以视为一个巨大的Map,对Map的操作无非就是get和put,然后通过key操作这个key所对应的value,而这个value的类型可以多种多样,也就是Redis为我们提供的那些数据结构,比如字符串(String)、哈希(Hash)...

    60道关于Redis的常见面试题.pdf

    - 使用`redis-dump`工具导入导出数据。 #### 22. 为什么 Redis 被称为内存数据库,它的优势和劣势分别是什么? - **内存数据库**:Redis 的所有数据都存储在内存中,因此被称为内存数据库。 - **优势**: - 高...

Global site tag (gtag.js) - Google Analytics