一、Redis简介
Redis是一种key-value形式的nosql数据库。
nosql
NoSQL,泛指非关系型数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。传统数据库暴露的问题:
- High performance - 对数据库高并发读写的需求
数据库并发负载非常高,关系型数据库处理上万次并发SQL查询还能顶得住,但是写数据就是硬盘IO不能承受的痛了。 - Huge Storage - 对海量数据的高效率存储和访问的需求
例如一个SNS网站,每天用户产生海量的用户动态,对于关系型数据库来说,在一张几亿条记录的表里面进行SQL查询,效率极其低下。 - High Scalability & High Availability - 对数据库的高可扩展性和高可用性的需求
当用户量越来越大,服务器撑不住了,这个时候Web服务器还可以进行集群或分布式,但是传统数据库进行横向扩展是非常麻烦的。对于很多需要提供24小时不间断服务的网站来说,对数据库进行系统升级和扩展或者数据库服务器挂了,是非常痛苦的事,往往需要停机维护和数据迁移,所以数据库也要通过不断的添加服务器节点来实现扩展。
NoSQL数据库的四大分类
- key-value存储数据库
典型应用:内容缓存,主要用于处理大量数据的高访问负载
数据模型:一系列键值对(Redis)
把数据放在内存中,放在内存中容量就不能太大,所以主要是做缓存,加速数据的访问,把访问频率高的热点数据放在内存中
- 列存储数据库
典型应用:分布式的文件系统
数据模型:以列簇式存储,将同一列数据存在一起(HBase)
大数据处理,MySQL是以行的形式存储。用列存储,那么这一列都是相同的数据类型,这样在对相同类型的进行压缩执行算法的时候效率更高
- 文档型数据库
典型应用:Web应用(与key-value类似,value是结构化的)
数据模型:一系列键值对(如MongoDB)
存储数据的基本单位是文档,一条数据就可以称之为是一个文档,每个文档里可以包含不同的数据类型
- 图形(Graph)数据库
典型应用:社交网络
数据模型:图结构
图的特点就是任意两个节点都可以相互连接
Redis的应用场景
- 缓存(数据查询 (首页)、短连接、新闻内容、商品内容等等)
【最多使用】
- 分布式集群架构中的session分离
- 聊天室的在线好友列表
- 任务队列(秒杀、抢购、12306等)
【用MQ队列更好一点】
- 应用排行榜
- 网站访问统计
- 数据过期处理(可以精确到毫秒)
二、Redis的安装
版本说明
Redis是C语言开发的,官方并不提供windows版本,所有官方版本都是基于linux。
- Redis官方下载地址:
https://redis.io/download - Windows下载地址:
https://github.com/MicrosoftArchive/redis/releases
编译环境安装
安装Redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc。
- 创建用户:
groupadd redis
useradd -g redis redis
passwd redis #设置密码#
- 安装wget:
yum install wget -y
- 可以使用命令来安装编译环境:
yum install gcc-c++ -y
- 安装步骤:
- 下载redis源码:
wget http://download.redis.io/releases/redis-5.0.6.tar.gz
- 源码解压缩
tar zxf redis-5.0.6.tar.gz
- 编译源代码
cd redis-5.0.6
make
## 源码编译后可以得到可执行文件
- 安装
可以将编译后的文件安装到指定位置
make install PREFIX=/usr/local/redis
- 更改所属用户/组
chown -R redis:redis /usr/local/redis
最后在/usr/local/redis/bin目录下的文件
三、启动和关闭
启动
- 前端启动
直接运行./redis-server将以前端模式启动 - 守护进程模式
以守护进程的模式启动的话需要redis.conf配置文件,在配置文件中设置redis的启动模式。从redis源码目录redis-5.0.6中复制redis.conf到bin下,然后修改其中的配置信息:
daemonize yes
启动redis时,指定使用的配置文件:
./redis-server redis.conf
这样redis就以守护进程模式启动了。
关闭
- 前端启动模式可以使用 ctrl+c快捷键关闭进程
- 守护模式可以使用 kill 进程id关闭
- 守护模式也可使用 ./redis-cli shutdown 命令关闭
关于Redis的命令:
./redis-cli —— 启动redis客户端(本地)
./redis-cli -h 127.0.0.1 -p 6379
# 启动客户端(IP+Port)
四、桌面软件
百度网盘:不要升级,除非你想付费
链接:https://pan.baidu.com/s/1LJJrgoVUhwoiE9wwDPR72A
提取码:7TVB
要使用外网配置,需要修改redis.conf配置文件:
- bind 127.0.0.1 改为环境ip
- 可以给redis设置密码requirepass yourpasswd
通过auth yourpasswd登录
- protect-mode yes 保护模式
有两种情况会触发保护模式:第一种情况是没修改bind,外网访问不了,第二种情况是没有添加用户名或组,没有密码他认为你是不安全的
这个不用修改 - tcp-backlog 511 最大半连接数
如果三次握手没完成,就称为半连接,要对半连接进行限制,如果说处于半连接状态的连接很多,那么就会造成服务器没法正常停止服务
另外还要配置防火墙端口,可以参照我的centos下安装mysql数据库一文,开启6379端口。
现在用你的RedisDeskManager进行连接测试吧