redis
文章平均质量分 94
假装懂编程
vx find 假装懂编程
展开
-
分布式还有这个坑
这是一篇3分钟就能阅读完的文章,相信对你有极大的实战帮战hi,大家好,我是康师傅,最近看到一个比较有意思的问题,关于分布式锁的,自己平时在工作中也有用到分布式锁,但是确实也没注意到一些临界值的问题,说白了就是没有进行深度思考。关于这个标题,你可能会比较诧异,锁还能怎么优雅删除?直接一个 delete 不就完了,不然还怎么删除。首先啊,我们先简单说下为什么要分布式锁,现在基本上都是分布式系统,应该没有什么系统是部署的单节点吧,因为单节点风险比较大,如果节点宕机,那么整个应用就起不来,如果是多节...原创 2022-03-20 20:58:50 · 2637 阅读 · 6 评论 -
redis 奇葩数据类型和集群知识
今天聊聊 redis 的数据类型和集群相关的知识,冲~。多样的数据类型string类型简单方便,支持空间预分配,也就是每次会多分配点空间,这样 string 如果下次变长的话,就不需要额外的申请空了,当然前提是剩余的空间够用。List类型可以实现简单的消息队列,但是注意可能存在消息丢失哦,它并不持 ACK 模式。Hash表有点像关系型数据库,但是当 hash 表越来越大的时候,请注意,避免使用 hgetall 之类的语句,因为请求大量的数据会导致redis阻塞,这样后面的兄弟们就得等待...原创 2022-01-04 08:29:38 · 2538 阅读 · 5 评论 -
redis IO模型的演进
前言redis作为应用最广泛的nosql数据库之一,大大小小也经历过很多次升级。在4.0版本之前,单线程+IO多路复用使得redis的性能已经达到一个非常高的高度了。作者也说过,之所以设计成单线程是因为redis的瓶颈不在cpu上,而且单线程也不需要考虑多线程带来的锁开销问题。然而随着时间的推移,单线程越来越不满足一些应用场景了,比如针对大key删除会造成主线程阻塞的问题,redis4.0出了一个异步线程。针对单线程由于无法利用多核cpu的特性而导致无法满足更高的并发,redis6.0也推出了多线程模式原创 2021-11-02 21:30:51 · 1705 阅读 · 3 评论 -
万字总结redis
redis数据类型剖析1.stringsds数据结构,采用空间预分配和惰性空间释放来提升效率,缺点就是耗费内存。struct sdshdr { int len; //长度 int free; //剩余空间 char buf[]; //字符串数组};空间预分配:当一个sds被修改成更长的buf时,除了会申请本身需要的内存外,还会额外申请一些空间。惰性空间:当一个sds被修改成更短的buf时,并不会把多余的内存还回去,而是会保存起来。总结:这种设计的核心思想就是空间原创 2021-10-11 07:56:05 · 10401 阅读 · 20 评论