从nosql数据库说起,
有些数据访问频率过高,传统的关系型数据库很难支持,即使支持高频率的io硬盘也无法接受。
一.各种种类NoSQL
①键值存储数据库
熟悉的产品:redis
应用内容:内容缓存,用于大量数据的高访问负载
数据类型:一系列键值对
优势:快速查询
劣势:缺少结构化
②列存储数据库
熟悉的产品:Hbase
应用内容:分布式的文件系统
数据类型:列簇式存储,将同一列数据存储在一起
优势:查询快,容易进行分布式拓展
劣势:功能相对局限
③文档型数据库
熟悉的产品:MongoDB
应用内容:WEB应用
数据类型:一系列键值对
优势:数据结构要求不严格
劣势:查询性能不高,缺少统一的查询语法
④图形数据库
熟悉的产品:暂无
应用内容:社交网络
数据类型:图结构
优势:利用图结构相关算法
劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案
二。非关系型数据库的特点
易拓展
大数据量,高性能
灵活的数据模型
高可用
三。数据类型及应用场景
支持的键值数据类型:
字符串类型
散列类型
列表类型
集合类型
有序集合类型
value支持的数据类型
字符串(String)最长容纳512m
哈希(hash)
字符串列表(list)
字符串集合(set)
有序字符串集合(sorted set)
应用场景
缓存(相关的数据查询等)
聊天室的在线好友列表
任务队列,秒杀抢购等等
应用排行榜
访问统计
分布式集群架构中的session分离
四。常用命令
存储string
赋值: set key value
取值:get key
删除:del key
数值增减:incr key
decr key(该key不存在,默认其初始值为0,如果key不能转成整型数据,报错)
仓库只有0-15
select index 选择仓库,相当于mysql下的use database
move key index 将当前仓库下的键值移动到指定编号的仓库内
服务器命令
ping 测试,服务器会回应pong
echo 输出指定内容
quit 退出连接
dbsize 返回数据库中key的数目
info 获取服务器的信息和统计
flushdb 删除当前数据库中的所有key
flushall 删除所有数据库中的所有key
消息订阅和发布
频道聊天
窗口1中通过输入:subscribe mychat 订阅一个名称为mychat的频道
窗口2中通过输入:publish mychat ‘111’在频道mychat中发布消息111
窗口3中通过输入:psubscribe my* 批量订阅以my开头的频道
窗口2中通过输入:
publish mychat ‘333’ 在频道mychat和my*频道中发布消息
Publish mychat02 ‘444’ 在频道my*中发布消息
事务
redis中通过multi/exec/discard命令来解决开发中遇到的事务问题
mysql中一条命令失败,就会回滚
在redis中失败,其他的照常执行