天气:阴晴
分布式数据库CAP原理
一、传统与CAP的区别
传统的ACID:
1.Atomicity 原子性
2.Consistency 一致性
3.Isolation 独立性
4…Durability 持久性
CAP(实现需求有冲突,主要是三选二)
1.Consisitency 强一致性
2.Availability 可用性
3.Partition tolerance 分区容错性
由于当前网络硬件肯定会出现延迟丢包等问题,所以分区容错性是我们必须实现的需求,所以一般在一致性和可用性之间权衡
大多数网站架构的选择是AP(举例:强一致类似要求点赞数这些数据精准,高可用要求网站能承载更多的流量不会崩溃)
为了解决由于数据库强一致性引起可用性降低的问题,提出了BASE解决方案
基本可用(basically available)
软状态(Soft state)
最终一致(Eventually consistent)
二、REDIS
**Redis:REmote DIctionary Server(远程字典服务器),完全开源免费,由C语言编写,遵守BSD协议,是一个高性能的KV分布式内存数据库,基于内存运行,支持持久化的NoSQL数据库,也被人们称为数据结构服务器
1.Redis支持数据的持久化
2.Redis不仅支持kv类型数据,还提供list,set,zest,hash等数据结构
3.Redis支持数据备份,即master-slave模式的数据备份
linux系统上安装Redis
**
HelloWord-
1、到usr/local/bin下修改Redis的配置文件
2、redis-server /myredis/redis.conf
启动服务》》》以这个配置启动
3、redis默认端口6379:redis-cli -p6379
4、ping后回应PONG为正常运行
5、set k1 v1,数据被存储到Redis
5、get k1,会得到k1的值v1
6.SHUTDOWN关闭redis
启动后基础知识
1.redis是单进程
2.默认16个数据库:databases 16
3.选择数据库:select 【0-15】
4.dbsize:查看有多少个key
5.keys *:查找所有的key;keys k?:查找以k开头接一位的key值
6.FLUSHDB:清空当前库所有的内容;FLUSHALL:清空所有库
Redis数据类型
1.String:字符串
2.Hash:哈希,类似map
3.List:列表,实际上是一个链表
4.Set:集合,通过实现HashTable
5.Zset(sorted set):有序集合,每个元素关联一个double份数,根据这个排列,zset成员是唯一的,但是分数可能重复