jedis与redistemplate有什么差别
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,jedis与redistemplate有什么差别?这篇文章运用了实例代码展示,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Jedis是Redis官方推荐的面向Java的操作Red
千家信息网最后更新 2025年01月22日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安全错误
数据库的锁怎样保障安全
梅州大方网络技术公司
外文软件开发
分布式数据库如何容灾
软件开发过程说明文档
自己软件开发怎么挣钱
网络安全和舆情处置总结
护苗网络安全主题教育教案
重要服务器补丁测试记录表
数据库如何创建取值范围
什么是外包服务器
数据库中合并连接
数据库字段默认为空值
晋城软件开发企业
互联网金融数字科技公司
上网吧玩我的世界服务器
云盘服务器
游戏软件开发需要什么专业
申报税额合计软件开发
理光扫描仪服务器响应错误
十九大酒店网络安全保障
江苏新一代软件开发推广
ebsco数据库基本检索
怎么启动带网络安全模式
中等职业网络安全技术书
软件开发需求期根因分析
端游山海经的一个服务器要多少钱
诺亚方舟海贼王服务器
前端软件开发文档编写
用华为云服务器没买主机安全
qq数据库下载地址