Redis基本原理

学习了下《Redis设计与实现》,总结下便于后面复习。mysql

1 数据结构

五种数据类型、zset原理和应用、跳跃表的概念redis

2 单机数据库

redis过时策略、持久化、单线程sql

3 多机数据库

主从复制、断点续传、哨兵、集群的slot分配数据库

redis集群中槽的概念:

1)判断键属于哪一个节点服务器

2)增长一台服务器数据结构

4 发布/订阅

(1)频道订阅:学习

(2)模式订阅线程

5 事务

redis事务的概念和mysql相似,意思是多个客户端的命令按事务的方式执行,每次把一个客户端的事务命令处理完毕再去处理下一个客户端事务。设计

经过MULTI、EXEC、WATCH等命令实现事务。3d

 

Redis的事务不支持回滚,并且多个命令在执行过程当中,若是有些失败了,照样执行正常的命令,执行过的命令也不会回滚。——要这铁棒有何用

 

6 Redis单线程为何这么快

参考:https://draveness.me/redis-io-multiplexing

redis使用了I/O多路复用技术,底层封装了多路复用方法,优先使用epoll,若是编译环境不支持epoll则使用select做为兜底方案。

能够在单台服务器上部署多个redis实例。