单体架构:一台Web服务器、一台数据库服务器。
1.了解NoSql
什么是Nosql?
- NoSQL,即Not-Only-SQL,意思就是我们干事情不能只用SQL,泛指非关系型的数据库!
- NoSQL定位:作为关系型数据库的补充!最终数据还是存储在硬盘/磁盘里面。
- NoSQL仅仅是一个概念, 泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性。
- NoSQL不是什么情况下都用的,是有适用前提的:应对基于海量用户(高并发)和海量数据前提下的数据处理问题。
2.Redis介绍
2.1什么是Redis
- 是完全开源免费的,用C语言编写的, 遵守 BCD协议。
- 是一个高性能的(key/value)分布式内存数据库, 基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构 服务器。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
- Redis支持数据的备份,即master-slave(主从)模式的数据备份
2.2 Redis优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
- 丰富的特性 – Redis还支持 publish/subscribe订阅,通知,key 过期等等特性
- 采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗;
- 使用多路I/O复用模型,非阻塞IO;
2.3 Redis下载
(1)Http://redis.io/ 英文地址
(2)Http://www.redis.cn/ 中文地址
3.2 Redis的安装
3.2.1 Redis的编译环境
- Redis是C语言开发的,安装redis需要先去官网下载源码进行编译,编译需要依赖于GCC编译环境,如果CentOS上没有安装gcc编译环境,需要提前安装,安装命令如下:yum install gcc-c++
上传Redis安装文件到Linux服务器,并且移动到/usr/local/MySoftWare目录中,接着解压:
编译Redis(编译,将.c文件编译为.o文件)
- 进入解压文件夹,执行 make
- 编译成功!如果编译过程中出错,先删除安装文件目录,后解压重新编译。
安装:make PREFIX=/home/admin/myapps/redis install
安装之后的bin目录:
bin文件夹下的命令:
Copy文件:将redis解压的文件夹中的redis.conf文件复制到安装目录
- Redis启动需要一个配置文件,可以修改端口号信息。
3.3 Redis的启动
3.3.1 Redis的前端模式启动
直接运行bin/redis-server将使用前端模式启动:
前端模式启动的缺点是启动完成后,不能再进行其他操作,这个界面只能启动,启动后不能进行其他操作,如果要退出操作必须使用Ctrl+C。
3.3.2 Redis的后端启动
修改redis.conf配置文件,找到daemonize no,将no改为yes,然后可以使用后端模式启动。
- no表示不允许后端启动!
启动时,需要既指定指令,指定配置文件(这里所在文件夹是redis)
Redis默认端口:6379,通过当前服务进行查看
3.3.3 客户端访问连接redis
- 如果想要通过指令来操作redis,可以使用redis的客户端进行操作,在bin文件夹下运行redis-cli
- 如果想要连接指定的ip地址以及端口号,则需要按照: redis-cli -h ip地址 -p 端口号 语法结构连接。
- 该指令默认连接的127.0.0.1 ,端口号是6379
3.3.4 向Redis服务器发送命令
- ping,测试客户端与Redis的连接是否正常,如果连接正常,回收到Pong
3.3.5 退出客户端:quit
3.3.6 Redis的停止
(1) 强制结束程序(不推荐)
- 强制终止Redis进程可能会导致Redis持久化数据丢失。
- 语法:kill -9 pid
- 进程号pid可以通过 ps -aux | grep redis 进行查询。
(2) 正确停止Redis的方式应该是 :向Redis发送SHUTDOWN命令,方法为(关闭默认的端口)
3.3.7 第三方工具(redis-desktop-manager)操作redis
1. 关闭Linux防火墙
2. 进入自己的redis安装目录,vim进入redis.conf修改redis.conf文件中的bind参数
接着重新启动Redis:
连接Redis: