第一章 Redis介绍

  • 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实现日志收集