Redis
前言
NoSQL数据库发展历史简介
NoSQL介绍
-
Web的历史发展历程
- Web1.0——以门户网站为代表,网易、新浪,主要以用户阅读、浏览为主,没有太大性能问题
- Web2.0——有很多用户参与进来,交互性越来越多(微博、天涯、虎扑),就有很多的用户加入进来,网站的压力越来越大,数据库的压力很大
-
数据库性能瓶颈
- 单机数据库的性能是有限的,能够支持的并发:数百-1000
- 所以需要使用Redis缓存来解决高并发问题
-
NoSQL
- Not Relational(非关系型)——没有对SQL支持、不能去建立表与表的关系
- 特点:
- 扩展性好
- No schema(没有模式),可以用来存储结构化、非结构化、半结构化的数据
- 速度快
- 支持海量数据的存储
-
NewSQL:基于NoSQL之上又可以支持一些SQL相关的操作
- HBase -> Phoenix
-
DBEngines网站中会统计目前数据库在全世界的排名
1. Redis介绍
几乎覆盖了Memcached的绝大部分功能
数据都在内存中,支持持久化,主要用于备份恢复
除了支持简单的key-value模式,还支持多种数据结构的存储,比如list,set,hash,zset等。
一般是作为缓存数据库辅助持久化的数据库
现在市面上用的非常多的一款内存数据库
redis官网地址:
Https://redis.io/
中文网站:
http://www.redis.cn/
1.1 Redis的基本介绍
- Redis是当前比较热门的NoSQL系统之一
- 它是一个开源的、使用ANSI C语言编写的key-value存储系统(区别于MySQL的二维表格形式存储)
- 和Memcache类似,但很大程度补偿了Memcache的不足,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。
- 网站的行为分析/流量分析
- 骨灰级指标
- PV——Page View,页面浏览量,用户浏览一次页面就会累加一次
- IP——IP地址,一个IP一天只计算一次
- UV——Unique Visit,唯一的用户访问数,每个用户一天只计算一次
- Redis是一个NoSQL、基于Key-value键值对的存储引擎
1.2 Redis的应用场景
- 计数器
- TopN、排行榜(微博的热搜榜、热门话题、抖音直播间的热门直播间、淘宝电商的排行榜)
- 去重的计数
- 实时系统,用于存储一些规则
- 定时过期的一些应用(短信验证码)
- 缓存(保护数据库不被高并发压垮) 将数据直接存放到内存中,性能优于Memcached,数据结构更多样化。
1.3 Redis的特点
- 高效性
- Redis读取的速度是110000次/s,写的速度是81000次/s
- 原子性
- Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行
- 支持多种数据结构
- String(字符串)
- List(列表)
- Hash(哈希)
- Set(集合)
- Zset(有序集合)
- 稳定性
- 持久化、主从复制(集群)
- 其它特性
- 支持过期时间,支持事务,消息订阅
2. Redis安装
Mac版Redis安装
-
不使用homebrew
-
下载压缩包:https://redis.io/
-
从下载(Downloads)位置打开新的终端窗口
-
在终端输入命令(注意下载的redis版本可能不一样):
- 解压:tar zxvf redis-6.2.6.tar.gz
- 移动到:sudo mv redis-6.2.6 /usr/local
- 切换到:cd /usr/local/redis-6.2.6/
- 编译测试:make test
- 编译安装:make install
-
开启redis服务器,在该路径下输入命令:‘src/redis-serve’
-
redis服务端开启成功后,不要关闭此窗口,并重新打开一个终端,输入
redis-cli
,打开redis客户端-
在输入命令
redis-cli
前,先进行如下配置,保证redis-cli
命令能够在任何路径下使用。sudo cp src/redis-cli /usr/local/bin/
-
执行命令
redis-cli
开启客户端redis-cli
-
-
下次需要开启redis服务时,不能再使用
src/redis-server
开启服务,该命令只能在安装redis的目录下使用。要保证在任何目录下都能开启redis服务,跟配置redis-cli
一样 -
下次再需要开启redis服务,
只需输入redis-server
命令即可
-
-
使用homebrew
直接打开终端使用homebrew输入命令进行安装:
brew install redis
可能出现提示,输入命令
brew services restart redis
之后启动redis 即可直接打开终端输入命令:
redis-server
在终端退出Redis只需要键盘:control + c
即可退出