![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
Handoking
聚沙成丘。
展开
-
Redis数据结构详解(一)简单动态字符串,链表,字典
导航1.简单动态字符串(SDS)数据结构SDS的优点2.链表链表结构定义3.字典字典的结构定义字典的rehash操作1.简单动态字符串(SDS)数据结构SDS结构定义struct sdshdr{ //SDS中保存的字符串的长度 int len; //SDS中未使用的空间长度 int free; //保存字符串的字节数组 char buf[];}例如在SDS中存入Redis...原创 2019-07-02 19:52:10 · 269 阅读 · 0 评论 -
简单一句话:redis为什么快
基于内存,单线程,多路I/O复用//TODOredis分布式锁的实现原创 2019-07-18 17:03:55 · 226 阅读 · 0 评论 -
Redis主从复制
导航一般情况下的主从复制-增量同步快照同步一般情况下的主从复制-增量同步主节点会将改变数据的指令记录保存在buffer,然后异步复制(异步的同步数据)到从节点,从节点一边根据指令记录同步数据,同时还会返回正在执行的命令的偏移量。内存中的buffer是一个定长的环形数组,大小有限,当buffer满了的时候,新写入的指令记录会覆盖之前的记录。如果主节点和从节点的网络出问题,从节点未收到的指令可能会...原创 2019-07-29 10:57:22 · 145 阅读 · 0 评论 -
Redis和数据库缓存一致性的分析与可靠的解决方案
导航为什么会产生缓存不一致的情况普遍采取的更新缓存的策略解决删除缓存失败的问题为什么会产生缓存不一致的情况一般更新缓存有下面的几种策略:归根结底:缓存应该是更新还是删除?1.先更新数据库,再更新缓存并发更新数据库或者并发更新缓存时,可能会出现脏数据,并且每次都把没有读到的数据更新到缓存,也太浪费内存了。2.先删除缓存,再更新数据库如果一个线程更新数据,一个线程查询数据。更新数据的线程...原创 2019-07-25 10:12:58 · 289 阅读 · 0 评论 -
Redis为什么先执行指令,再写AOF日志?
为什么这么问因为在常见的数据库中,持久化重做日志一般是先写日志再修改数据库,保证数据/操作不会丢失。所以看到redis的AOF日志的机制后,很困惑,网上连这个问题的提问都没有,书上也是一笔带过。要弄明白这个问题,首先要搞懂Redis写AOF日志的流程。写AOF日志首先,AOF日志中写入的是收到的操作命令记录。redis包含丰富的数据类型,对set数据执行Rpush显然会发生错误,因此命令写...原创 2019-07-27 16:31:43 · 2997 阅读 · 4 评论