Redis学习笔记

Redis的作用

  • 易扩展:NoSQL数据库种类繁多,而且一个共同的特点就是去掉关系型数据库的关系型特性,数据之间无关系,就非常容易扩展,在架构层面上提高了扩展性。
  • 大数据量高性能:具有非常高的性能,尤其在大数据下,表现同样优秀,得益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache每次表的更新就失效,是一种大力度的cache,针对web2.0的交互频繁使用,Cache的性能不高,而NoSQL的cache是记录级 的,是一种细粒度的cache。
  • 多样灵活的数据模型:NoSQL无须为存储的数据建立字段,随时可以存储自定义的数据格式,而在关系型数据库中,增删字段非常麻烦,大量数据的表,增加字段是一个噩梦。

传统Rdbms vs Nosql:

  传统RDBMS:高度组织化结构化数据,结构化查询语言(SQL),数据和关系都存储在具体的表中,数据操纵语言-数据定义语言,严格的一致性,事务

  NoSQL:代表不仅仅是SQL,没有声明性查询语言,没有预定义的模式,键值对存储、列存储、文档存储、图形库存储,最终一致性而非acid属性,非结构化和不可预知的数据,cap原理,高性能、高可用和伸缩性

Redis,Mongdb,MemoryCache

 

NoSQL数据模型:聚合模式(KV键值,Bson-类似于json串的数据表达,列族,图形)

NoSQL数据库四大模型:

KV键值:美团(Redis + tair),阿里百度(Redis + memcache)

文档型数据库:bson格式较多 Mangdb

列存储数据库:HBASE,

图关系数据库:朋友圈社交网络,广告推荐系统

 

CAP原理:

传统的acid:原子性,一致性,独立性,持久性

CAP:Consistency(强一致性),Availablity(可用性),Partition tolerance(分区容错性)

CAP的三进二:一个分布式不可能同时满足CAP,因此根据CAP原理将NoSQL数据库分为CA原则,CP原则和AP原则

CA:单点集群,满足一致性,可用性的原则,通常在可扩展性上不太强大----传统Oracle数据库

CP:满足一致性,分区容忍必的系统,通常对性能要求不是很高----------------Redis,MongDB

AP:满足可用性,分区容忍性的系统,通常可能对一致性要求低一些----------大多数网站架构下的选择

 

BASE原理:基本可用(Basically Available),软状态(Soft state),最终一致性(Eventualy consistent)

 

分布式:不同的服务器上部署不同的服务模块

集群:不同服务器上部署相同的服务模块

 

Redis远程字典服务器:是一个用C语言编写,免费开源的,遵守BSD协议。高性能的分布式内存数据库,基于内存运行,也支持持久化的NoSQL数据库,

三个特点:

  • 支持数据的持久化:可将内存中的数据保存在磁盘中,重启的时候再次加载使用
  • 不仅支持简单的KV结构的存储,还支持list,set,zset,hash等结构的存储
  • 支持数据的备份,即master-slave模式的数据备份

使用:

  • 内存存储和持久化
  • 取最新N个数据
  • 发布订阅消息系统
  • 定时器,计数器

 Redis五大数据类型

  • string:最基本的类型,和memcache同样实现;是二进制安全的,意思是string可以包含任何数据,图片或者序列化的对象;一个Redis字符串value最大为512MB
  • hash:类似于java里面的map<string, Object>
  • set:string类型的无序集合,通过hashtable实现
  • zset:不允许重复的成员的set,不同元素都会关联一个double的分数;Redis通过分数为集合中的成员从小到大排序,分数可以重复;
  • list:底层用链表

Redis开发命令开发大全:

http://redisdoc.com/

posted @ 2019-10-14 13:15  shemlothae  阅读(209)  评论(0编辑  收藏  举报