Redis&缓存相关
在路上2017
曾先后在互联网金融、支付公司、阿里巴巴、滴滴担任技术专家角色,擅长分布式、高并发、海量数据、支付资金相关的架构
展开
-
Redis 单线程 为何却需要事务处理并发问题
Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢?个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有一个线程。客户端访问之间存在竞争。简单的总结下,其实redis本事是不会存在并发问题的,因为他是单进程的,再多的command都是one by one执行的。我们使用的时候,可能会出现并发问题,比如get和set这一对。因为存在多客...原创 2019-08-24 16:09:09 · 2877 阅读 · 1 评论 -
Redis scan命令的一次坑 转
Redis作为当前服务架构不可或缺的Cache,其支持丰富多样的数据结构,Redis在使用中其实也有很多坑,本次博主遇到的坑或许说是Java程序员会遇到的多一点,下面就听博主详细道来。线上服务堵塞String key = keyOf(appid);int retryCount = 3;int socketRetryCount = 3;Exception ex = null;w...原创 2019-08-24 16:11:39 · 346 阅读 · 0 评论 -
Redis的并发竞争问题
Redis的并发竞争问题,主要是发生在并发写竞争。考虑到redis没有像db中的sql语句,update val = val + 10 where ...,无法使用这种方式进行对数据的更新。假如有某个key = "price", value值为10,现在想把value值进行+10操作。正常逻辑下,就是先把数据key为price的值读回来,加上10,再把值给设置回去。如果只有一个连接的情况...原创 2019-08-24 16:15:21 · 100 阅读 · 0 评论 -
redis分布式锁深度剖析
redis分布式锁的实现主要是基于redis的setnx 命令(setnx命令解释见:http://doc.redisfans.com/string/setnx.html),我们来看一下setnx命令的作用:redis-setnx.png1、redis分布式锁的基本实现redis加锁命令:SETNX resource_name my_random_value PX 3...原创 2019-08-25 16:44:08 · 201 阅读 · 0 评论