Redis
数据类型和命令
string
set
get
list
lpush
lpop
rpush
rpop
底层实现是链表,量少时为zipset,即数组的连续区域。量大时为quickset,即将多个zipset用指针连接起来
hash
hset
hget
set
sadd
smembers
sortedset
zadd
zrange
底层实现为跳跃列表,跳表
跳表
个人总结:
- 首先是一个有序链表
- 为了提高查询速度,给每个节点增加多个索引,指向更后面的节点。由O(n) ——> O(log(n))
- 抛硬币决定加几层索引,即第一层100%,第二层50%,第三层25%...
为啥不用平衡树(平衡排序树):
- 插入删除不用调整子树,更简单迅速
- 范围查找比平衡树好
- 算法实现简单
集群模式
主从复制
介绍:
- 主服务器读写
- 从服务器备份,提供读
特点:
- 读写分离
- 容灾恢复
缺点:
- 写能力未提高
- 不支持自动恢复
- 故障时可能有部分数据未同步
哨兵模式
带哨兵的主从复制模式,可以自动切换master
集群模式
分布式的多节点
每个节点带从节点,带监控模式,可以自动切换 master
应用场景
- 分布式缓存
- 分布式锁
参考文章:
发布于 2020/08/22
浏览
次