NoSQL介绍
NoSQL(NoSQL=Not Only SQL),意为反SQL运动,是一项全新的数据库革命性运动。指的是非关系型数据库,解决了传统的关系型数据库,难以解决的超大规模和高并发的的问题
NoSQL是以Key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如遵循SQL标准,ACID属性,表结构等等。
这类数据库有以下特点:非关系型、分布式的、开源的、水平可扩展的。
NoSQL特点
1.处理超大量的数据
2.运行在便宜的PC服务器集群上
3.几岁了性能的瓶颈
NoSQL应用场景
1.对数据高并发读写
2.对还想数据的高效率存储和访问
3.对数据的高可扩展性和高可用性
Redis介绍
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis与其他key-value存储有什么不同?
- Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
- Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
Redis适用场景
1.取最新N个是数据的操作
2.排行榜应用,取TOP n操作
3.需要精确设定过期时间的应用
4.计数器应用
5.Uniq操作(唯一操作),获取某段时间所有数据的排重值
6.实时系统,反垃圾系统
7.Pub/Sub(发布,订阅)构建实时消息系统
8.构建队列系统
9.缓存
Redis和mysql、MogoDB区别
ID | Redis | MySQL | MogoDB |
---|---|---|---|
1 | 库 | 库 | 库 |
2 | 无 | 表 | 集合 |
3 | 无 | 字段行列 | 无 |
Redis安装
Linux下Ubuntu使用
$ sudo apt-get install redis-server
centOS下
$ sudo yum install redis-server
启动redis
$ redis-server
查看redis是否启动
$ redis-cli
命令会打开终端
redis 127.0.0.1:6379>
127.0.0.1为本机地址,6379为端口号
Redis配置
Redis 的配置文件位于 Redis安装目录下,文件名为 redis.conf。
可以通过 CONFIG 命令查看或设置配置项。
实例
redis 127.0.0.1:6379>config get *
使用*号通配符,显示所有的配置项。