-
1.1 Redis 是什么
Redis是一种基于键值对的NOSQL数据库,与很多键值对数据库不同,Redis中的值可以有 string 、hash 、list 、set、zset、 geo等多种数据结构和算法构成。
因此,Redis会将所有数据放到内存,所以他的读写能力非常惊人。
不仅如此,Redis还可以将内存中的数据利用快照和日志的形式保存到硬盘。
Redis还提供了键过期、发布订阅、事务、流水线等附加功能
-
1.2 Redis 重要特性
1.速度快
Redis所有数据全部存在内存中
Redis使用C语言实现
Redis使用单线程架构
2.基于键值对的数据结构服务器
5种数据结构:字符串,哈希,列表,集合,有序列表
3.丰富的功能
提供键过期功能,可以实现缓存
提供发布订阅功能,可以实现消息系统
提供 pipeline 功能,客户端可以一次性将一批命令传到Redis,减少了网络开销
4.简单稳定
源码很少,3.0版本之后5万行左右。
使用单线程模型法,使Redis服务端处理模型变得简单。
不依赖操作系统中的类库
5.客户端语言多
java , PHP , python , C ,C++, Node.js等
6. 持久化
RDB 和AOF
7.主从复制
8. 高可用和分布式
哨兵
集群
-
1.3 Redis 应用场景
1、缓存--键过期时间
缓存session会话
缓存用户信息,找不到再去mysql查,查到然后写回到redis
优惠券过期
2、排行榜--列表&有序结合
热度排名排行榜
发布时间排行榜
3、计数器应用--天然计数器
帖子浏览数
视频播放数
商品浏览数
4、社交网络--集合
踩 /赞, 粉丝 , 共同好友/喜好 ,推送 , 打标签
5、消息队列系统--发布订阅
配合elk实现日志收集