Redis系列-1.介绍

Redis系列-1.介绍

文章中可能有偏差,欢迎大家留言指证。
这一节主要是介绍redis,可能有部分地方没有说的太细或是不太好明白为什么,在后面的文章中会逐步的理解进去。

  • Redis系列-1介绍
    • 什么是redis
    • redis的一些特性
    • 它适合做什么
    • 它不适合做什么
    • 使用建议

1.什么是redis

redis是nosql的一种,nosql就是指非关系型数据库。nosql大体上分为三类:键值型(redis)、文档型(MongoDb)、列存储类型(HBase)。这里说的redis就是KV型,常用来做缓存,因其是内存型数据库,读写速度非常快。这里有一个分析:http://blog.csdn.net/chenleixing/article/details/43192639

2.redis的一些特性

速度快:都运行在内存上,速度当然快啦
简单稳定:redis是由C语言写成的,而且代码量也不大,在3W行左右(3.0以后在5W行左右),简单高效稳定。
客户端语言多:大部分语言都支持,比如java、php、python、C、C++、C#等。
持久化:有持久化到硬盘上的机制,不会在断电后丢失所有数据
高可用和分布式

3.它适合做什么?

在用每一个东西时都要了解它的长处和短处,redis也不是万能的,在部分情况下使用它效果非常好,但是在有些情况下使用会很糟糕(比如sql里的复杂查询)
他适合:
缓存:因其读写非常快,用来当缓存是再好不过了
排行榜:redis提供了列表和有序集合的数据结构,而内部也建立了针对的机制。比如要读取某一个列表的总数,传统的数据库会去遍历,而redis取值就可以了。他的列表和有序集合也适合做排行榜。
计数器:有时会大量用到计数器,比如视频网站的播放量、网站的浏览数。redis内置的部分机制会使得这种操作时间复杂度非常小。
消息队列:redis的列表结构非常适合做队列和栈。
社交网络:下拉刷新、按喜好推送等社交网络上的功能,对网站的访问量非常大,传统的关系型数据库不适合保持这类数据,redis提供的数据结构相对比较容易实现。

4.它不适合做什么

前面说到,redis也不万能的。下列情况下不适合redis:

数据量大:redis是运行在内存中的,内存现在虽然便宜下来了,但还是比硬盘贵上许多。
冷数据:对于一些记录,比如视频网站中用户的播放记录,这些记录相对视频信息会冷上不少。这样的数据放在内存中是比较浪费的。
复杂查询:nosql在复杂查询方面比不上传统的数据库。

5.使用建议

redis在使用时,不管是开发还是运维都要深入去了解和理解,不能当黑盒使用。特别是在对性能要求非常高的项目中,设计数据时参考redis不同的数据结构的优缺点时,往往会使性能提高不少。
对有些公司或项目组来说,redis有时不能满足需要。可以阅读redis的源码。阅读代码不光能加深理解,还可以做一些定制化,通过修改redis源码来达到需求。

你可能感兴趣的:(Redis)