redis
逆凡~
这个作者很懒,什么都没留下…
展开
-
分布式锁
直接基于setnx实现分布式锁setnx高版本已经可以将设置setnx和设置超时时间合并成原子操作了当然如果不想解除别人的锁,那么你可能需要threadLocal保存随机值其实还有一个问题,就是你拿到分布式锁后你来执行,但是执行过程中锁超时了,就会造成一些冲突操作,怎么办?因为你得操作可能很耗费时间,比如是一个大事务操作,这个时候就需要一个后台线程每隔10s来看看是否还拥有锁,如果拥有那么就...原创 2020-04-11 12:16:25 · 141 阅读 · 0 评论 -
Redis回顾2
为什么需要集群这样的功能?并发量数据量的问题,如果机器内存只有256G,业务需要500G呢?网络流量的需求数据分布-将全量数据进行拆分-拆分成一个个子集(分区)顺序分区和哈希分区对比还是跟你业务需求有关吧,比如你的键值业务相关就用顺序分布法,但是顺序分布有个很严重问题,就是数据倾斜,例如按照用户id进行区分,可能早期用户访问量较高,后期用户访问较低,导致访问不均匀hash分...原创 2020-04-10 21:10:58 · 206 阅读 · 0 评论 -
Redis基础回顾
数据结构和编码为什么要设计这么多的数据结构呢?比如像string就有类似于raw,int,embstrraw就是我们常说的sds了首先内存的资源是非常昂贵的,假如我们在使用数据结构的时候能够采用空间换时间的话,可以采用一些压缩的结构,又比如字符压缩AAAA我们可以压缩为4A,其实空间换时间你在redis里面真的非常常见,像Slot槽的状态保存通过ClusterNode.slots[]数组+C...原创 2020-04-09 21:30:59 · 149 阅读 · 0 评论