NoSQL
NoSQL适用场景
- 对数据高并发的读写
- 海量数据的读写
- 对数据高可扩展性的
- 速度够快,能够快速的存取数据
NoSQL不适用场景
- 需要事务支持,(只支持简单事务)
- 基于sql的结构化查询存储,处理复杂的关系,需要即席查询(用户自定义查询条件的查询)。
常用的NoSQL数据库介绍
一,memcache
- 很早出现的NoSql数据库
- 数据都在内存中,一般不持久化
- 支持简单的key-value模式 string
- 一般是作为缓存数据库辅助持久化的数据库
二,redis介绍
- 几乎覆盖了Memcached的绝大部分功能
- 数据都在内存中,支持持久化,主要用作备份恢复
- 除了支持简单的key-value模式,还支持多种数据结构的存储,比如 list、set、hash、zset等。
- 一般是作为缓存数据库辅助持久化的数据库
- 现在市面上用得非常多的一款内存数据库
三,mongoDB介绍
- 高性能、开源、模式自由(schema free)的文档型数据库
- 数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘
- 虽然是key-value模式,但是对value(尤其是json)提供了丰富的查询功能
- 支持二进制数据及大型对象
- 支持sql语句查询,最像关系型数据库的内存数据库。
四,列式存储HBase介绍
- HBase是Hadoop项目中的数据库。
- 它用于需要对大量的数据进行随机、实时的读写操作的场景中。
- HBase的目标就是处理数据量非常庞大的表,可以用普通的计算机处理超过10亿行数据,还可处理有数百万列元素的数据表。
Redis的基本介绍以及使用场景
redis的基本介绍
- Redis是当前比较热门的NOSQL系统之一
- 它是一个开源的使用C语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储)
- 和Memcache类似,但很大程度补偿了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,实现数据的持久化
redis环境安装
- 下载redis安装包
- 解压redis压缩包到指定目录
tar -zxvf 安装包路径 -C 解压路径
- 安装C程序运行环境
yum -y install gcc-c++
- 安装较新版本的tcl
yum -y install tcl
- 进行编译
redis make test && make install
- 修改redis配置文件
vim redis.conf
bind node-1
daemonize yes
pidfile /var/run/redis_6379.pid
logfile "/export/servers/redis-3.2.8/logs/redis.log"
dir /export/servers/redis-3.2.8/redisdata
- 创建相关的文件目录
vim -p /export/servers/redis-3.2.8/logs
vim -p /export/servers/redis-3.2.8/redisdata
- 启动redis
cd /export/servers/redis-3.2.8/src
redis-server ../redis.conf
- 连接redis客户端
cd /export/servers/redis-3.2.8/src
redis-cli -h node-1
redis数据类型与命令操作
全局命令
Redis有5种数据结构,它们是键值对中的值,对于键来说有一些通用的命令。
- 查看所有键
keys *
- 键总数
dbsize
- 检查键是否存在
exists key
- 删除键
del key [key ...]
del是一个通用命令,无论值是什么数据结构类型,del命令都可以将其删除
5. 键过期
expire key seconds
Redis支持对键添加过期时间,当超过过期时间后,会自动删除键
ttl命令会返回键的剩余过期时间,它有3种返回值:
大于等于0的整数:键剩余的过期时间。
-1:键没设置过期时间。
-2:键不存在
可以通过ttl命令观察键的剩余过期时间
6. 键对应的数据结构类型
type key
例如键hello是字符串类型,返回结果为string。