NoSQL概念
- 概念
NoSQL即 Not Only SQL,泛指 非关系型数据库。
NoSQL存在的条件
为什么需要NoSQL
- High Performance 高并发读写
- Huge Storage 海量数据的高效存储和访问
- High Scalability && High Availability 高可扩展性和高可用性
这些对于关系型数据库都是比较有很大的局限性的,但是对于非关系型数据库而言却是其优点。
NoSQL的特点总结
主要特点
- 易扩展(数据之间没有关系,容易扩展)
- 灵活的数据模型(不需要像关系型数据库那样事先建立要存储的字段)
- 大数据量,高性能(读写性能很高)
- 高可用(在不影响性能的情况下实现高可用的框架)
NoSQL主流产品
主流产品
- Redis
- mongoDB
- membase
- CouchDB
- Cassandra
其中Redis和mongoDB比较常见
NoSQL分类
分类
- 键值(Key-Value)存储(如:Redis,优势是快速查询;劣势是存储的数据缺少结构化)
- 列存储(优势是快速查询、扩展性也比较强;劣势是功能相对局限)
- 文档数据库(如:mongoDB,优势是数据结构要求不是很严格;劣势是查询性能不是很好,而且缺少统一的查询语法)
- 图形数据库(典型的应用是社交网络,优势是利用图结构相关算法;劣势是需要对整个图做计算才能得出结果,不容易做分布式的集群方案)
Redis相关
Redis概述
Redis概述
- Redis是开源的,知乎、新浪微博、Github都在使用Redis
- C语言开发的
- 高性能的键值对数据库
- 官方测试读写性能:读,11w次/s ; 写,8w次/s
Redis支持的键值数据类型
- 字符串类型
- 列表类型
- 有序集合类型
- 散列类型
- 集合类型
Redis应用场景
- 缓存(最主要的应用场景,比如数据的查询:新闻,商品的内容放入到缓存当中)
- 任务队列(秒杀,抢购)
- 网站访问统计
- 数据过期处理(可以精确到毫秒)
- 分布式集群架构中的session分离
查看redis服务是否已经启动命令
ps -ef | grep -i redis
ps 将某个进程显示出来 -A 显示所有程序。 -e 此参数的效果和指定"A"参数相同。 -f 显示UID,PPIP,C与STIME栏位。 grep命令是查找 中间的|是管道命令 是指ps命令与grep同时执行 这条命令的意思是显示有关redis有关的进程
UID PID PPID C STIME TTY TIME CMD
各相关信息的意义
daemonize:守护进程
- redis服务启动/关闭命令
进入redis安装目录:
cd redisLocation
启动服务:
./bin/redis-server ./redis.config
关闭服务:
./bin/redis-cli shutdowm
jedis
jedis概念
jedis是redis官方首选的java客户端开发包
linux下设置redis防火墙端口
vim /etc/sysconfig/iptables
加6389端口
简单罗列
NoSQL(非关系型数据库):
redis:key/value键值对存储数据库
mongodb:文档型数据库
hbase:列式数据库
neo4j:图式数据库,存储的是图关系而非行或列。主要用于社交网络的存储。
redis数据结构: String Hash Set SortedSet List
redis事务:multi exec discard
redis 持久化: rdb内存快照 aof命令日志