NoSQL, 全名为Not Only SQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。
NoSQL有如下优点:易扩展,NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间也在架构的层面上带来了可扩展的能力。大数据量,高性能,NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。
1) 优点
①高可扩展性
②分布式计算
③低成本
④架构的灵活性,半结构化数据
⑤没有复杂的关系
2) 缺点
①没有标准化
②有限的查询功能(到目前为止)
③最终一致是不直观的程序
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓存,另外,Redis也经常用来做分布式锁。除此之外,Redis支持事务、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。
本教程采用redis7.0.9版本。
下载地址:https://download.redis.io/releases/
右键,复制链接地址
wget https://download.redis.io/releases/redis-7.0.9.tar.gz
tar -zxvf redis-7.0.9.tar.gz
移动redis目录,一般都会将redis目录放置到 /usr/local/redis目录:
mv redis-7.0.9 /usr/local/redis/
cd /usr/local/redis/redis-7.0.9
make
等待make命令执行完成即可。
如果执行make命令报错:cc 未找到命令,原因是虚拟机系统中缺少gcc,执行下面命令安装gcc:
redis是c语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc 需要输入以下命令
yum install gcc
再次执行 make
编译成功之后会出现“It’s a good idea to run ‘make test’”的提示
安装成功
安装完后,在/usr/local/redis/bin下有几个可执行文件可以查看
ll /usr/local/redis/bin
redis-benchmark ----性能测试工具
redis-check-aof ----AOF文件修复工具
redis-check-rdb ----RDB文件检查工具(快照持久化文件)
redis-cli(client) ----命令行客户端
redis-server ----redis服务器启动命令
redis启动需要一个配置文件,可以修改端口号等信息
# 安装目录下将redis.conf文件拷贝到/usr/local/redis目录中
cp redis.conf /usr/local/redis
# 进入 /usr/local/redis
cd /usr/local/redis
# 修改配置文件redis.conf
vim redis.conf
进入后使用编辑模式进行修改以下部分
将 bind 127.0.0.1 -::1 替换为 bind 0.0.0.0
将 daemonize on 替换成 daemonize yes
①如果以守护进程运行,则不会在命令行阻塞,类似于服务。
②如果以非守护进程运行,则当前终端被阻塞,无法使用。
③推荐改为yes,以守护进程运行。
# 使用bin/redis-server ./redis.conf启动redis服务
./bin/redis-server ./redis.conf
# 使用命令ps -ef|grep redis查看已经启动的redis服务关闭redis服务
ps -ef|grep redis
# 使用./bin/redis-cli 命令进入到redis的客户端
./bin/redis-cli
需要先退出 redis 客户端 ,再关闭服务
# 退出redis客户端
exit
# 关闭redis
./bin/redis-cli shutdown
# 查看关于redis 的进程
ps -ef|grep redis
需要先退出 redis 客户端 ,再关闭服务
# 退出redis客户端
exit
# 关闭redis
./bin/redis-cli shutdown
# 查看关于redis 的进程
ps -ef|grep redis