Redis简介
一.Nosql数据库四大类介绍
1.K,v键值:redis,memcache,
2.文档性数据库:MongoDB,CouchDB
3.列存储数据库:分布式文件系统,HBase,Cassandra
4.图关系数据库:(不是放图形的,放的是关系,例如:朋友圈社交网络,广告推荐等)构建关系图谱
二.传统的ACID分别是什么?
1.A:atomicity:原子性
2.C:consistency:一致性
3.I:isolation:独立性
4.D:durability:持久性
三.CAP又是什么?
C:Consistency------------------>>强一致性
A:Availability--------------------->>可用性
P:Partition tolerance------------>>分区容错性
四.CAP理论
1.CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。
而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。
所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。
2.CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,
最多只能同时较好的满足两个。
因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。
AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。
五.针对CAP的3进2问题,BASE理论的提出
BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。
BASE其实是下面三个术语的缩写:
基本可用(Basically Available)
软状态(Soft state)
最终一致(Eventually consistent)
它的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观。为什么这么说呢,缘由就在于大型系统往往由于地域分布和极高性能的要求,不可能采用分布式事务来完成这些指标,要想获得这些指标,我们必须采用另外一种方式来完成,这里BASE就是解决这个问题的办法(例如:淘宝双十一当天,对于商品的评论和访问数可能不需要那么在意,首要是要保证服务器的高可用,崩了什么都白搭了,等双十一过后再在一定的时间内完成最终的数据一致性)
六.分布式+集群简介
分布式系统
分布式系统(distributed system)
由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。分布式系统可以应用在在不同的平台上如:Pc、工作站、局域网和广域网上等。
简单来讲:
分布式:不同的多台服务器上面部署不同的服务模块(工程),他们之间通过Rpc/Rmi之间通信和调用,对外提供服务和组内协作。
集群:不同的多台服务器上面部署相同的服务模块,通过分布式调度软件进行统一的调度,对外提供服务和访问。
七.redis启动后小知识点汇总
1.单进程
单进程模型来处理客户端的请求。对读写等事件的响应
是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率
epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,
它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
2.redis自带的数据库
默认16个数据库,类似数组下表从零开始,初始默认使用零号库
3.select命令切换数据库
4.dbsize查看当前数据库的key的数量
5.flushdb:清空当前库,Flushall;通杀全部库(两者都不要轻易使用,任意出事...你懂的)
6.统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上
7.Redis索引都是从零开始
8.默认端口6397(6379在是手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。MERZ长期以来被antirez及其朋友当作愚蠢的代名词。)
软件获取和帮助
Redis.io
Redis.cn
Download/redis.io
Redisdoc.com