redis学习与入门~~~

                redis学习与入门~~~


一。 Redis 简介:


        通常而言目前的数据库分类有几种,包括 SQL/NSQL,,关系数据库,键值数据库等等 等,分类的标准也不1,Redis本质上也是一种键值数据库的,但它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点。从而使它的位置处于关系数据库和键值数 据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和Sets类型(无序)的数据,而且还能完成排序(SORT) 等高级功能,在实现INCR,SETNX等功能的时候,保证了其操作的原子性,除此以外,还支持主从复制等功能。


Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

二。 Redis 优势

  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
  • 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

三。 对比:

Redis不是什么?同样从两个方面来做下对比: 
1. 不是sql server、mySQL等关系型数据库,主要原因是: 
     . redis目前还只能作为 小数据量存储 (全部数据能够加载在内存中) ,海量数据存储方面并不是redis所擅长的领域 
     . 设计、实现方法很不一样.关系型数据库通过表来存储数据,通过SQL来查询数据。而Redis通上述五种数据结构来存储数据,通过命令 来查询数据 

2.   不是Memcached等缓存系统,主要原因有以下几个: 

     .网络IO模型方面:Memcached是多线程,分为监听线程、worker线程,引入锁,带来了性能损耗。Redis使用 单线程的IO复用模型,将速度优势发挥到最大,也提供了较简单的计算功能 
     .内存管理方面:Memcached使用 预分配的内存池的方式,带来一定程度的空间浪费 并且在内存仍然有很大空间时,新的数据也可能会被剔除,而 Redis使用现场申请内存的方式来存储数据,不会剔除任何非临时数据 Redis更适合作为存储而不是cache 
     .数据的一致性方面:Memcached提供了cas命令来保证.而Redis提供了事务的功能, 可以保证一串 命令的原子性,中间不会被任何操作打断 
     . 存储方式方面:Memcached 只支持简单的key-value存储,不支持枚举,不支持持久化和复制等功能
   一句话小结一下:Redis是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。


参考博文:https://blog.csdn.net/tianzongnihao/article/details/54924924

猜你喜欢

转载自blog.csdn.net/weixin_37766296/article/details/80145443