NoSQL(Not Only SQL):泛指非关系型数据库
CAP定理:
Consistency(一致性), 数据一致更新,所有数据变动都是同步的;
Availability(可用性), 好的响应性能;
Partition tolerance(分区容错性) 可靠性;
定理:任何分布式系统只可同时满足二点,没法三者兼顾
CA:传统Oracle数据库
AP:大多数网站架构的选择
CP:Redis、Mongodb
DCS,即一种分布式缓存数据库服务,将现在很火的几类内存数据库Redis、Memcached和内存数据网格进行包装,提供即开即用、安全可靠、弹性扩容、便捷管理的在线分布式缓存能力
1.redis:
redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库(非关系性数据库)
2.优点:
①速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
②支持丰富数据类型,支持string,list,set,sorted set,hash
③支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
④丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除
3.redis数据类型:
①字符串(string)
set key value
get key
exists key //key是否存在
②哈希(hash)
hset hashKey key1 value1 key2 value2
hget hashkey key1
③集合(set)
sadd setKey value
scard setKey //返回集合中元素数量
sismember setKey value //查看value是否在集合setKey中
srem setKey value //从集合setKey中删除value
④列表(list)
lpush list value
rpop list
llen list
⑤有序集合(sort set)
zadd zset1 key1 value1
zcard zset1 //统计zset1下key的个数
zrank zset1 value2 //查看value2在zset1中排名位置
zrange zset1 0 2 withscores //查看0到2的所有值和分数按照排名