![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
yanerhao
信雅之言,微言大意
展开
-
Redis常见数据结构分析
SDS:应用广泛。空间预分配和惰性删除; ZIPLIST:列表+哈希+有序集合。连续扩散; INTSET:集合。类型升级; DICT:哈希+集合+有序集合(和快表一起)/pubsub_channles/keys/expire_keys/watched_keys/matsers/sentinels/nodes/客户端命令表。rehash; SKIPLIST:有序集合。 LIST:列表/时间...原创 2020-04-25 22:13:37 · 124 阅读 · 0 评论 -
REDIS 快的原因及缓存三大问
快的原因: 1 纯内存操作 没有磁盘IO; 2 底层数据结构简单,且对于不同对象根据实际情况采用效率更高的不同的数据结构,操作更高效; 3 单线程,子进程,避免多线程带来的上下文切换和资源竞争(V6版本引入多线程 也只是在网络IO时加入多线程多写) 4 多路IO复用。 三大问:REDIS作为数据库缓存时有可能发生的现象: 雪崩:缓存的大量数据同时过期,导致大量请求同时访问数据库,导致...原创 2020-04-25 22:06:39 · 232 阅读 · 0 评论 -
REDSI淘汰策略
针对带过期时间的: LRU-volatile LFU-volatile TTL-volatile(最先一个过期的) LRU-volatile 普通的KEY: LRU-allkeys LFU-volatile random-volatile 以及noeviction原创 2020-04-25 21:55:54 · 155 阅读 · 0 评论 -
Redis拒绝写入的几种情况
1 正在载入数据 2 上次bgsave err 以及开启了stop_write_on_bg_save_error 3 客户端正使用subscribe psubscribe 4 Lua脚步正阻塞 5 客户端正执行事务 6 max-memroy达到且policy为noevicion 7 不满足“至少有min-slaves-to-write个从服务器, 并且这些服务器的延迟值都少于...原创 2020-04-25 21:53:35 · 712 阅读 · 0 评论 -
Redis 哨兵选举故障转移与集群选举故障转移区别
哨兵选举与故障转移: 主要针对非集群模式下主从模式,由哨兵负责。哨兵发现主下线后,哨兵发起选举,其余哨兵负责投票,选出一个哨兵作为故障转移的Leader, 由这个leader哨兵完成故障转移 集群选举与故障转移 主要针对集群模式下的主从,由主的从负责。一个从发现主下线后,主发起选举,其他有资格的主(有槽的)负责投票,选出一个从作为新主,新主完成故障转移包括槽重新分配。 选举算法均是R...原创 2020-04-25 21:45:18 · 598 阅读 · 0 评论 -
redis的docker文件,通过docker-compose配置redis
准备环境: docker 18.06.1-ce docker-compose 1.23.0-rc3 redis如5.0.3 1 创建redis的dockerfile FROM redis:5.0.3 LABEL "maintainer"="xx@yy" ENV TIME_ZONE=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TIME_Z...原创 2020-03-26 15:07:18 · 1973 阅读 · 0 评论 -
redis里几种主要结构
redis server进场就是一个时间循环,包括文件事件处理客户端请求和返回;时间时间执行serverCron函数来进行过期键、rdb或aof重写存储等。 def eventLoop(): while True: processFileEvents() processTimeEvents() flushAof() struct red...原创 2019-12-16 16:40:39 · 229 阅读 · 0 评论