Redis——初步了解

一、前言:

        我们在介绍Redis之前,先来简单了解一下NOSQL,即not  noly sql,是一种非关系型的数据存储,key/value键值对存储。现有Nosql  DB产品:Redis、MongoDB、Memcached等。

        那么,我们为什么需要NoSQL非关系型数据库呢?用一句话总结是:用来解决大数据、高并发的问题。

        ①High performance - 对数据库高并发读写的需求。

        ②Huge Storage - 对海量数据的高效率存储和访问的需求。

        ③High Scalability && High Availability - 对数据库的高可扩展性和高可用性的需求。

 

二、基本概念:

        Redis是一个可基于内存亦可持久化的日志型、Key-Value数据库,并且提供多种语言的API。它是为应用而生。是一个高性能的key-Value数据库。Redis的出现,很大程序上弥补了memcached这类keyvalue存储的不足(即解决了断电后数据完全丢失的情况),在部分场合可以对关系型数据库起到很好的补充作用。

        Redis与memcached一样,为了保证效率,数据都是存在缓存中。区别是Redis会周期性的把更新的数据写入磁盘,或者把修改操作写入追加的记录文件,并在此基础上实现了master-slave(主从)同步。因为Redis支持只从不同,因此,数据可以从主服务器上向任意数量的从服务器上同步,这使得Redis可执行单层数操作,存盘可有意无意对数据进行写操作。

 

三、Redis和Memcached比较:

       (1)如果存储的数据不是很大的情况下,两者几乎没太大区别,性能都非常高。如果存储的数据非常大的情况下,那么memcached性能略高,因为Memcached是多线程的,Redis是单线程的。

       (2)Redis断电之后有两种恢复方法:一是通过日志回复数据,而是通过本身自带的数据文件恢复数据。

       (3)memcached数据没有类型。Redis:包括string(字符串)、list(链表)、set(集合)、zset(有序集合)、hash(哈希)高级的数据结构,可以把集合做成队列、栈等高级的数据结构。

       (4)memcached是通过客户端驱动实现了集群的配置,而Redis是通过服务器端配置实现集群的。而且Redis有主从的复制功能(同步功能)。

       (5) Redis与memcached一样,为了保证效率,数据都是存在缓存中。区别是Redis会周期性的把更新的数据写入磁盘,或者把修改操作写入追加的记录文件,并且在此基础上实现主从同步。(Redis也可能会有一小部分数据丢失)。    

                 

 

四、Redis应用:

       新浪微博目前正在使用Redis,处理大量的数据。我们目前ITOO系统的公共选修模块,准备使用Redis,来实现所谓的“秒杀”功能。当公共选修时间开始时:假定教师端设置《鬼谷子》这门课程为最多50人可选择,不能出现第51个人选择了这个课程,并且提示选课成功的现象。

posted @ 2016-10-13 17:50  知为谁开  阅读(174)  评论(0)    收藏  举报