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/