Redis 简介
Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis 优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis高可用(一主二从三哨兵)
- Redis主从其实是读写分离,主节点写数据,从节点读数据。
- 在部署redis 的时候,如果redis宕机,缓存将不可用,redis提供了哨兵模式保证redis实现高可用。如果不启动哨兵,主节点挂掉之后从节点不会自动选举出新的主节点。
- 以三台服务器为例,按照一台主机,两台从机,三台哨兵主机进行部署,master挂了以后,由于哨兵监控,剩余slave会进行选举,选举后其中一个成为master,当原来的master恢复后,他会成为slave。
Redis Cluster集群(三主三从)
- Redis集群的作用是解决随着业务数据量庞大超过单节点容量的问题,将数据分别存储到不同的redis上,并且可以横向扩展。
- 以三台服务器为例,搭建三主三从,即三组一主一从,共六主六从。组内是主从关系,可以实现高可用,组间是集群关系,实现分工存储。保证任意一台服务器宕机,集群均不会fail。如下图所示。