文档章节

其实你可以不必Redis exists

d
 dragon_tech
发布于 05/21 14:21
字数 344
阅读 6
收藏 0

今天,不小心看到一段代码,因之前优化过类似的问题。但是这种问题一而再再而三出现,真心觉得码农,也不是谁都能当好的。细节决定成败,做事情的风格,真真的会阻碍一个人的发展。

废话不多说,直接上代码:

 

//不友好使用方式
if(jedis.exists(key)){
    String value = jedis.get(key);
    do("目标代码1");
    //……
}else{
    do("目标代码2");
    //……
}
 
//友好使用方式
String value = jedis.get(key);
if(value!=null){
    do("目标代码1");
    //……
}else{
    do("目标代码2");
    //……
}

不友好的方式,分别要与redis进行两次网络通信,而友好的方式只有一次。性能提升一倍。

结论:大多数的情况下,我们都是不需要exists的。使用exists的场景,只能用在就单单判断key是否存在,无需后续操作redis的情况,才是最合适。

 

同样是if else,但有的人在if迷失,有的人则在else中找到出口。

 

本文转载自:https://blog.csdn.net/li396864285/article/details/77336474

d
粉丝 4
博文 435
码字总数 12578
作品 0
西安
私信 提问
处理:/var/redis/run/redis_6379.pid exists, process is already running or crashed

处理:/var/redis/run/redis_6379.pid exists, process is already running or crashed 2017年01月21日 23:02:15 luozhonghua2014 阅读数:17448更多 个人分类: linux 集群/分布式/性能 版权......

linjin200
2018/12/06
0
0
Redis分布式锁的原理以及如何续期

面试问题 Redis锁的过期时间小于业务的执行时间该如何续期? 问题分析 首先如果你之前用Redis的分布式锁的姿势正确,并且看过相应的官方文档的话,这个问题.我们来看 很多同学在用分布式锁时,...

xiaomin0322
04/04
0
0
JAVA|Spring注解踩坑记录,涉及到的注解包括@Autowired、@Resource、@Primary、@Qualifier

我们在项目中是有两个Redis源,有两个Redis Bean如下: Bean1:dataRedisTemplate Bean2:redisTemplate 我在另一个应用中把数据放入到Bean2 redisTemplate对应的Redis中,于是我在这个应用中...

小怪聊职场
01/20
0
0
Redis分布式锁的实现原理看这篇就够了~

一、写在前面 现在面试,一般都会聊聊分布式系统这块的东西。通常面试官都会从服务框架(Spring Cloud、Dubbo)聊起,一路聊到分布式事务、分布式锁、ZooKeeper等知识。 所以咱们这篇文章就来...

Java干货分享
2018/11/21
0
0
Netty模拟redis服务器

Redis的客户端与服务端采用叫做 RESP(Redis Serialization Protocol)的网络通信协议交换数据,客户端和服务器通过 TCP 连接来进行数据交互, 服务器默认的端口号为 6379 。客户端和服务器发送...

ksfzhaohui
2016/08/28
3.7K
10

没有更多内容

加载失败,请刷新页面

加载更多

抽象同步队列AQS——AbstractQueuedSynchronizer锁详解

AQS——锁的底层支持 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资...

须臾之余
今天
3
0
springboot配置百度UEditor 富文本详解

富文本简介 UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码... 准备工作 ueditor需要单独文...

wotrd
昨天
4
0
mysql 5.7之my.cnf配置大全

[client]port = 3306socket = /tmp/mysql.sock[mysqld]###############################基础设置######################################Mysql服务的唯一编号 每个mysql服务...

Online_Reus
昨天
3
0
MAVEN打包时引入外部链接的包

1.项目引入了ORACLE的jar包,MAVEN配置如下 2.打jar包的时候需要指定下main入口函数mainClass <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> ......

Cobbage
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部