1.NoSQL数据库分类 2.Redis 介绍 3.Redis基础类型 4.持久化,主从复制,集群
NoSQL数据库分类:
1.键值(key-value)数据库 用作内容缓存,处理大量数据的高访问负载.
优点:快速查询 缺点:存储数据缺少结构化
2.队存储数据库(Hbase) <分布式数据库> 以列簇式存储,将同一列数据存在一起.
优点:查找快,分布式扩展 缺点:功能局限
3.文档型数据库(MongoDB)
优点:数据结构要求不高 缺点:查询性能低
Redis(NoSQL数据库)
解决高并发(双十一),高可用(死了不能影响下一个服务器),高扩展.
应用场景:<1>缓存 <2>分布式集群架构的Session分离 <3>任务队列
Redis基础类型:
<1>String
Set key value | get key | getset key value (单个)
MSet key value[key value...]|Mget Key ....(多个)
Del Key
数值递增 INCR key(increment)
数值递减 DECR key(decrement)
尾部增值 Append key value
长度 Strlen key
应用:商品编号,订单号等采用其递增
<2>Hash
HSet key field value | HMSet [key field value...]
HGet key field | HMget key [field...] | Hget all key
Hdel key [field...]
Hincrby key field increment
应用:存储商品信息于每一个字段中
EXP:
字段 字段值
UserName zhangsan
Password 123456
User Name zhangsan
Age 20
<3>List 采用双向链表存储,两边增加
LPush key [value...] | RPush key [value...]
Lrange key start stop
Ldrop key | Rdrop key
Llen key
删除指定 ldrop key index
设定指定 lset key value
插入列表 Linsert key before|after pivot value
转移列表 rpop lpush source destination <???>
应用:商品评论列表,增加评论.
<4>Set(无序,不可重复)
Sadd key [member]/Srem key [member...]
Smembers key 获取所有元素
Sismembers key member 判断元素是否在集合中
Sdiff [key..] 差运算
Sinter [key...] 交集运算
Sunion [key...] 并集运算
Scard key 获得个数
Spop key 弹出一个元素
<5>SortedSet(有序,不可重复,唯一)
Zadd key score[member...] 增加member的score集
Zscore key [member...] 返回member的score集
Zrank key member [member排行]
Zcard key 获取个数
应用:销售排行榜
Keys命令
Keys * 返回所有的key
exsits [keys]
Del [key]
Rename key [key]
Type [key]
Redis持久化方案
Redis通过设置配置文件,满足条件后持久化存储到磁盘中(使用快照技术)
快照:某一节点挂掉后,当新节点使用(Rdb方式)
(Aof方式)操作一次即存储一次到aof文件中
Tip:若重启redis,则使用Aof方式,否则使用RDB方式.
Redis主从复制
避免单点故障master-slave
<1>主机故障,则使用从机
<2>主机既可以当主也可以当从
<3>从机只能get,不能set
Redis集群
<1>Redis节点通过ping-pong机制,内部使用二进制协议传输速度和带块
<2>超过半数节点失效,则fail
<3>client只需连接任意一个节点
<4>cluster映射到[0-rb383]上
Redis-Cluster
<1>节点挂掉 当半数以上的节点和该节点通信失败,则认为挂掉
<2>cluster-fail(不可用)
1.当有master挂掉,则master无slave
2.半数以上master挂掉.