Redis 简介
一个神奇的网站
大型翻车现场
问题现象
- 海量用户
- 高并发
罪魁祸首——关系型数据库
- 性能瓶颈:磁盘IO性能低下
- 扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群
解决思路
Nosql
- 降低磁盘IO次数,越低越好 —— 内存存储
- 去除数据间关系,越简单越好 —— 不存储关系,仅存储数据
什么是Nosql?
NoSQL:即 Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充。
作用:应对基于海量用户和海量数据前提下的数据处理问题。
特征:
⚫ 可扩容,可伸缩
⚫ 大数据量下高性能
⚫ 灵活的数据模型
⚫ 高可用
常见 Nosql 数据库:
⚫ Redis
⚫ memcache
⚫ HBase
⚫ MongoDB
解决方案(电商场景)
小节
⚫ 企业级应用的常见问题
◆ 海量用户
◆ 高并发
⚫ NoSQL
Redis
概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。
特征:
- 数据间没有必然的关联关系
- 内部采用单线程机制进行工作
- 高性能.官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。
- 多数据类型支持
◆ 字符串类型 string
◆ 列表类型 list
◆ 散列类型 hash
◆ 集合类型 set
◆ 有序集合类型 zset/sorted_set - 支持持久化,可以进行数据灾难恢复
Redis 的应用
⚫ 为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等
⚫ 即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等
⚫ 时效性信息控制,如验证码控制、投票控制等
⚫ 分布式数据共享,如分布式集群架构中的 session 分离
⚫ 消息队列
小节
⚫ Redis概念
Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。
⚫ Redis特征
- 数据间没有必然的关联关系
- 内部采用单线程机制进行工作
- 高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。
- 多数据类型支持
◆ 字符串类型 string
◆ 列表类型 list
◆ 散列类型 hash
◆ 集合类型 set
◆ 有序集合类型 zset/sorted_set - 支持持久化,可以进行数据灾难恢复
Redis 的下载与安装
基于Center OS7安装Redis
⚫ 下载安装包
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
⚫ 解压安装包
tar –xvf redis-5.0.0.tar.gz
⚫ 编译(在解压的目录中执行)
make
⚫ 安装(在解压的目录中执行)
make install
安装 Redis
⚫ redis-server 服务器启动命令
⚫ redis-cli 客户端启动命令
⚫ redis.conf redis核心配置文件
⚫ redis-check-dump RDB文件检查工具(快照持久化文件)
⚫ redis-check-aof AOF文件修复工具
已有安装包安装
⚫ 上传安装包
- 安装包已经在资料中直接上传到虚拟机
⚫ 安装gcc环境
yum -y install gcc-c++ tcl
⚫解压
tar -zxvf redis-5.0.0.tar.gz
⚫make
- 进入解压目录执行make
⚫make install
- 进入解压目录执行make install
- 最终效果如下图
常见问题
- 没有wget命令(-bash: wget: 未找到命令)
yum -y install wget
- 下载网络受限
- 下载地址
wget --no-check-certificate
http://download.redis.io/releases/redis-5.0.0.tar.gz
Redis服务器启动
⚫ 启动服务器——参数启动
redis-server [--port port]
⚫ 范例
redis-server --port 6379
⚫ 启动服务器——配置文件启动
redis-server config_file_name
⚫ 范例
redis-server redis.conf
Redis客户端启动
⚫ 启动客户端
redis-cli [-h host] [-p port]
⚫ 范例
redis-cli –h 61.129.65.248 –p 6384
注意:服务器启动指定端口使用的是–port,客户端启动指定端口使用的是-p。-的数量不同
Redis基础环境设置约定
⚫ 创建配置文件存储目录
mkdir conf
⚫ 创建服务器文件存储目录(包含日志、数据、临时配置文件等)
mkdir data
⚫ 创建快速访问链接
ln -s redis-5.0.0 redis
小节
⚫ Redis启动
- 服务器启动
redis-server --port 6379
- 客户端启动
redis-cli -h IP地址 -p 端口号
服务器端设定
⚫ 设置服务器以守护进程的方式运行,开启后服务器控制台中将打印服务器运行信息(同日志内容相同)
daemonize yes|no
⚫ 绑定主机地址
bind ip
⚫ 设置服务器端口号
port port
⚫ 设置服务器文件保存地址
dir path
客户端配置
⚫服务器允许客户端连接最大数量,默认0,表示无限制。当客户端连接到达上限后,Redis会拒绝新的连接
maxclients count
⚫ 客户端闲置等待最大时长,达到最大值后关闭对应连接。如需关闭该功能,设置为 0
timeout seconds
日志配置
⚫ 设置服务器以指定日志记录级别
loglevel debug|verbose|notice|warning
⚫ 日志记录文件名
logfile filename
注意:日志级别开发期设置为verbose即可,生产环境中配置为notice,简化日志输出量,降低写日志IO的频度
小节
⚫ 服务器相关
◆ daemonize yes|no
◆ bind ip-address
◆ port [port]
◆ dir ”目录名”
⚫ 客户端相关
◆ maxclients [client-num]
◆ timeout [seconds]
⚫ 日志相关
◆ loglevel debug|verbose|notice|warning
◆ logfile ”日志文件名”
Redis 的基本操作
信息读写
⚫ 设置 key,value 数据
set key value
⚫ 范例
set name itheima
⚫ 根据 key 查询对应的 value,如果不存在,返回空(nil)
get key
⚫ 范例
get name
帮助信息
⚫ 获取命令帮助文档
help [command]
⚫ 范例
help set
⚫ 获取组中所有命令信息名称
help [@group-name]
⚫ 范例
help @string
退出命令行客户端模式
⚫ 退出客户端
quit || exit
⚫ 快捷键
Ctrl+C
小节
⚫ 数据操作
◆ get
◆ set
⚫ 获取帮助信息
◆ help
⚫ 退出客户端
◆ quit
◆ exit
总结
Redis 入门
- Redis 简介
◆ NoSQL
◆ Redis - Redis 的下载与安装
◆ 下载与安装
◆ 服务器与客户端启动
◆ 配置文件(3类) - Redis 的基本操作
◆ 数据读写
◆ 退出与帮助信息获取