Redis简介

  • 我们知道,内存,硬盘和CPU都可以存放数据,不过CPU存放的数据特别有限(存放各级缓存,效率特别快,操作系统来管理CPU的缓存)。mysql将数据存放在硬盘中,qps(query per second)为5000~8000。redis将数据存放在内存中,qps为11w。内存的读取速度要比硬盘的读取速度快得多。
  • 我们可以打开final shell查看一下mysql存放的数据在哪,先输入 vim /etc/my.cnf查看存放的路径,然后cd /var/lib/mysql

Redis简介_第1张图片Redis简介_第2张图片
然后我们就可以看到这是mysql里的一些数据了。

Redis简介

Redis 是一种基于键值对的NoSQL数据库(想要了解更多NoSQL数据库,点击访问),它提供了对多种数据类型(字符串、哈希、列表、集合、有序集合、位图等)的支持,能够满足很多应用场景的需求。Redis将数据放在内存中,因此读写性能是非常惊人的。与此同时,Redis也提供了持久化机制,能够将内存中的数据保存到硬盘上,在发生意外状况时数据也不会丢掉。此外,Redis还支持键过期、地理信息运算、发布订阅、事务、管道、Lua脚本扩展等功能,总而言之,Redis的功能和性能都非常强大,如果项目中要实现高速缓存和消息队列这样的服务,直接交给Redis就可以了。目前,国内外很多著名的企业和商业项目都使用了Redis,包括:Twitter、Github、StackOverflow、新浪微博、百度、优酷土豆、美团、小米、唯品会等。

Redis是remote dictionary server 的缩写,它是一个用 ANSI C 编写的高性能的key-value存储系统(以字典的形式存储),与其他的key-value存储系统相比,Redis有以下一些特点(也是优点):

  • Redis的读写性能极高,并且有丰富的特性(发布/订阅、事务、通知等)。
  • Redis支持数据的持久化(RDB和AOF两种方式),可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis支持多种数据类型,包括:string、hash、list、set,zset、bitmap、hyperloglog等。
  • Redis支持主从复制(实现读写分离)以及哨兵模式(监控master是否宕机并自动调整配置)。
  • Redis支持分布式集群,可以很容易的通过水平扩展来提升系统的整体性能。
  • Redis基于TCP提供的可靠传输服务进行通信,很多编程语言都提供了Redis客户端支持。

Redis的应用场景

  • 高速缓存 - 将不常变化但又经常被访问的热点数据放到Redis数据库中,可以大大降低关系型数据库的压力,从而提升系统的响应性能。
  • 排行榜 - 很多网站都有排行榜功能,利用Redis中的列表和有序集合可以非常方便的构造各种排行榜系统。
  • 商品秒杀/投票点赞 - Redis提供了对计数操作的支持,网站上常见的秒杀、点赞等功能都可以利用Redis的计数器通过+1或-1的操作来实现,从而避免了使用关系型数据的update操作。
  • 分布式锁 - 利用Redis可以跨多台服务器实现分布式锁(类似于线程锁,但是能够被多台机器上的多个线程或进程共享)的功能,用于实现一个阻塞式操作。
  • 消息队列 - 消息队列和高速缓存一样,是一个大型网站不可缺少的基础服务,可以实现业务解耦和非实时业务削峰等特性,这些我们都会在后面的项目中为大家展示。

你可能感兴趣的:(Redis简介)