一、Redis初映象
高性能的key-value服务器 多种数据结构(区别于memcached)
丰富的功能 高可用分布式支持
二、相识
2-1、Redis初识
2-1-1、Redis是什么
开源(短小,精悍)、key-value基于键值的存储服务系统(Java中的Map)、多种数据结构(String、Hash Tables、Linked Lists、Sets、Sorted Sets)、高性能
2-1-2、Redis的特性
- 速度快(10W OPS)
数据===》 内存中
什么语言===》 C语言(5万行,最近版本)
线程模型===》 单线程
读写对比
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/326415911e6078d6a42e5625bb3b9287.png)
- 持久化(断电不丢数据)
Redis所有数据保持在内存中,对数据的更新将异步的保存到磁盘上 - 多种数据结构,5种,其他为衍生
String、Hash Tables、Linked Lists、Sets、Sorted Sets
BitMaps:位图(属于String)
HyperLogLog:超小内存唯一值计算
GEO:地理信息定位() - 支持多种编程语言
Java 、PHP 、Ruby 、LUA - 功能丰富(发布订阅)
发布订阅
Lua脚本
事务
pipeline - 简单(代码,使用)
单机的开发版(2万多行)
3之后,增加集群功能
不依赖外部库
单线程模型 - 主从复制
8、高可用、分布式
高可用===》Redis-Sentinel(V2.8)支持高可用
分布式===》Redis-Cluster(V3.0)支持分布式
2-1-3、Redis的典型应用场景
缓存系统
计数器(点赞,播放次数)
消息队列系统
排行榜(有序集合)
社交网络(天然适合)
实时系统(布隆过滤器?)
2-2、API的使用
2-3、Redis客户端的使用
2-4、多种功能
2-6、Redis复制的原理和优化
2-7、Redis Sentinel
2-8、Redis Cluster(分布式实现)