Redis简介:
是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求。
优点:
- 对数据高并发读写
- 对海量数据的高效率存储和访问
- 对数据的可扩展性和高可用行
缺点:
- redis(ACID)处理非常简单
- 无法做到太复杂的关系数据库模型
Redis 是以key-value store存储,data structure service 数据结构服务器,键可以包含:(string)字符串、哈希、链表(list)、(set)集合。(Zset)有序集合。这些数据结合都支持pysh/pop、add/remove
及取交集和并集以及更丰富的操作,redis支持各种不同方式排序,为了保证效率,数据丢失缓存在内存中,它也可以周期性的把更新数据写入磁盘后者把修改操作写入追加到文件。
除了上述的5种数据结构,Redis还提供了许多额外的功能:
- 提供了键过期功能,可以用来实现缓存
- 提供了发布订阅功能,可以用来实现消息系统
- 支持Lua脚本功能,可以利用Lua创造出新的redis命令
- 提供简单的事务功能,能再一定程度上办证事务特性
- 提供了流水线(pipeline)功能,这样客户端能将一批命令一次性传到redis,减少了网络的开销
Redis速度快的原因:
- redis把所有数据都是存放在内存中的
- redis是用C语言实现的,一般来说C语言实现的程序"距离"操作系统最近,执行速度相对更快
- Redis使用了单线程架构,预防了多线程可能产生的竞争问题
Redis 的持久化:
redis提供两种持久化方式:RDB和AOF,即可以用两种策略将内存的数据保存在硬盘中,这样就保证了数据的可持久性。
高可用:
Redis从2.8 版本正式提供了高可用实现Redis Sentinel,它能够保证Redis节点的故障发现和 故障自动转移。Redis从3.0 版本正式提出了分布式Redis Cluster ,它是Redis真正的分布式实现,提供了高可用、读写和容量的扩展性。
redis有3种高可用:
1.主从
2.哨兵
Redis sentinel是一个分布式系统中监控redis主从服务器,并在主服务器下线时自动进行故障转移。其中有3个特性:
监控(Monitoring): Sentinel会不断地检查你的主服务器和从服务器是否运作正常。
提醒(Notification):当被监控的某个Redis服务器出现问题时,Sentinel可以通过API向管理员或者其他应用程序发送通知。
自动故障转移(Automatic failover):当一个主服务器不能正常工作时,Sentinel会开始一次自动故障转移操作。
3 集群