jedis与redistemplate有什么差别
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,jedis与redistemplate有什么差别?这篇文章运用了实例代码展示,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Jedis是Redis官方推荐的面向Java的操作Red
千家信息网最后更新 2025年11月08日jedis与redistemplate有什么差别
jedis与redistemplate有什么差别?这篇文章运用了实例代码展示,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
Jedis是Redis官方推荐的面向Java的操作Redis的客户端,而RedisTemplate是SpringDataRedis中对JedisApi的高度封装。
使用原生jedis和spring的redisTemplate调用连接池,发现差别巨大:
redis配置:
redis: database: 0 host: 127.0.0.1 port: 6379 password: 123456 timeout: 5000 lettuce: shutdown-timeout: 200 pool: max-active: 500 max-idle: 100 min-idle: 50 max-wait: 2000
jedis单元测试:
public void testJedis() throws IOException { GreExam greExam = new GreExam(); greExam.setId(997); String greExamStr = JacksonUtil.bean2Json(greExam); long time = 0; for (int i = 0; i < 100; i++) { try (Jedis jedis = jedisPool.getResource()) { // 1、推送 long time1 = System.currentTimeMillis(); jedis.lpush("jedis-mq", greExamStr); // 2、接收 String msg = jedis.brpoplpush("jedis-mq", "jedis-mq_bak", 0); jedis.lrem("jedis-mq_bak", 1, msg); long time2 = System.currentTimeMillis(); time += time2 - time1; } catch (Exception e) { e.printStackTrace(); } } System.out.println("总时间:" + time); }redisTemplate单元测试:
public void testRedisTemplate() throws IOException { GreExam greExam = new GreExam(); greExam.setId(997); String greExamStr = JacksonUtil.bean2Json(greExam); long time = 0; for (int i = 0; i < 100; i++) { // 1、推送 long time1 = System.currentTimeMillis(); redisTemplate.opsForList().leftPush("redisTemplate-mq", greExamStr); // 2、接收 String msg = (String) redisTemplate.opsForList().rightPopAndLeftPush( "redisTemplate-mq", "redisTemplate-mq_bak", 1, TimeUnit.SECONDS); redisTemplate.opsForList().remove("redisTemplate-mq_bak", 1, msg); long time2 = System.currentTimeMillis(); time += time2 - time1; } System.out.println("总时间:" + time); }时效对比:
结论:原生jedis效率优于redisTemplate。另外,测试种发现,使用了100次请求,每次不进行业务操作,执行速度很快,redis只保持了几个连接,但是若是加上自己的业务处理或者休眠几秒,会发现redis持续保持了连接池的配置50+连接。
由于是单线程,上一个jedis执行完毕后,貌似没有关闭,而且下次调用也没有分派空闲连接,而是打开新连接,直到最小连接数饱和,才分配空空闲连接给下一个(按理说单线程应该保证新调用的时候,上一个已经完全空闲,所以不再开新连接),具体原因位置,保持疑问,可能和线程池的原理有关。
到此为止, 关于jedis与redistemplate的差别有了一个基础的认识, 但是对于具体的使用方法还是需要多加巩固和练习,如果想了解更多相关内容,请关注行业资讯。
差别
线程
测试
业务
代码
单元
时间
空闲
推送
配置
巨大
最小
到此为止
位置
使用方法
兴趣
内容
原因
原理
基础
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
浙江营销网络技术
ig数据库
物联网网络技术升本科吗
2013年的网络安全事件
重庆采购系统管理软件开发
立创服务器上未找到该封装
mac建立服务器软件
阿里企业邮箱客户端服务器
黄田坝腾飞大道软件开发
政务网络安全工作
数据中心的服务器按照外型可分为
搭建流媒体服务器与应用服务器
王玉峰简历软件开发
达梦数据库数字类型
沧州广电网络技术部
特殊软件开发费用是多少
路由dns服务器地址怎么填写
文件数据库技术
梦幻西游进服务器的时候连接失败
网络安全法是一部什么法律吗
数据库个人总结
数据库出现死锁会断开连接吗
法院网络安全工作方案
谣言算网络安全吗
网络安全管理策略文档
清华信息安全网络安全
服务器违约金最高多少
肚痛健胃整肠丸药品广告数据库
空间数据库索引的作用
服务器无线网卡